如何在SQL查询中为每个日期添加预定义分类以扩展行数据?
解决方案:日期表关联预定义分类实现行扩展
要实现每个日期对应4条预定义分类记录,核心是用**交叉连接(CROSS JOIN)**将日期表和预定义分类集合做关联,自动完成日期与分类的全量组合。以下是修改后的SQL:
SELECT cm.date_format, t.DC, t.SALES_ORG_ID, t.SALES_ORG_DESC, t.COUNTRY, t.ORDER_CLASSIFICATION FROM NAM_ANALYTICS.CALENDAR_MDV cm -- 交叉连接预定义分类集合 CROSS JOIN ( VALUES ('DC01', 'SO01', '北美销售区', 'US', '零售'), ('DC02', 'SO02', '欧洲销售区', 'DE', '批发'), ('DC03', 'SO03', '亚太销售区', 'CN', '电商'), ('DC04', 'SO04', '拉美销售区', 'BR', '企业客户') ) AS t(DC, SALES_ORG_ID, SALES_ORG_DESC, COUNTRY, ORDER_CLASSIFICATION) WHERE cm.DATE_ID BETWEEN 20231101 AND 20231130 ORDER BY cm.DATE_ID ASC, t.ORDER_CLASSIFICATION ASC
关键说明:
- 预定义分类直接写在
VALUES子句中,后续分类变动时,只需修改这里的字段值或新增/删除分类行即可 CROSS JOIN会让日期表的每一行(30天)与分类集合的每一行(4个分类)组合,最终生成30×4=120条记录- 可根据需求调整
ORDER BY的排序规则,比如按日期+分类排序
内容的提问来源于stack exchange,提问作者Blazer1984
相关产品推荐
相关产品推荐

