没有的数据填充

Weaseatiti 2018-10-29 03:40:13
日期表
2018-1
2018-2
2018-3

销售表
产品 销售日期 销售数量 返修数量
产品1 2018-1 100 1
产品2 2018 -2 200 2
产品2 2018-1 20 1


求日期
产品 销售日期 销售数量 返修数量
产品1 2018-1 100 1
产品1 2018-2 0 0
产品1 2018-3 0 0
产品2 2018-1 20 1
产品2 2018 -2 200 2
产品2 2018-3 0 0


...全文
48 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
吉普赛的歌 2018-10-29
  • 打赏
  • 举报
回复
USE tempdb
GO
IF OBJECT_ID('t1') IS NOT NULL DROP TABLE t1
IF OBJECT_ID('t2') IS NOT NULL DROP TABLE t2
GO
CREATE TABLE t1(
	d VARCHAR(10)	
)
SET NOCOUNT ON;
INSERT INTO t1 VALUES ('2018-1')
INSERT INTO t1 VALUES ('2018-2')
INSERT INTO t1 VALUES ('2018-3')
GO
CREATE TABLE t2(
	pName NVARCHAR(10),
	saleDate VARCHAR(10),
	saleNum INT,
	returnNum INT
)
SET NOCOUNT ON;
INSERT INTO t2 VALUES ('产品1','2018-1','100',1)
INSERT INTO t2 VALUES ('产品2','2018-2','200',2)
INSERT INTO t2 VALUES ('产品2','2018-1','20',1)
GO

SELECT 
tt.pName [产品]
,t1.d AS [销售日期]
,isnull(t2.saleNum,0) AS [销售数量]
,isnull(t2.returnNum,0) AS [返修数量]
  FROM t1 CROSS JOIN 
	(select pName from t2 GROUP BY t2.pName) AS tt 
	LEFT JOIN t2 ON tt.pName=t2.pName AND t1.d=t2.saleDate
 
/*
产品         销售日期 销售数量    返修数量
---------- ---------- ----------- -----------
产品1        2018-1     100         1
产品1        2018-2     0           0
产品1        2018-3     0           0
产品2        2018-1     20          1
产品2        2018-2     200         2
产品2        2018-3     0           0
 */

27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧