请教一个蛋疼的sql怎么写 表格如图片

简欥 2018-10-09 11:29:12
统计日期 2018-09-01 到2018-09-02
如果一个ItemID一天中有一个City的Stock为1 那么当天此ItemID的查询结果计为1
查询指定日期区间 所有ItemID查询结果的和
比如下表 2018-09-01的查询结果应该为2 2018-09-01的查询结果为3
指定日期区间内查询结果应该为5
...全文
139 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
吉普赛的歌 2018-10-09
  • 打赏
  • 举报
回复
USE tempdb
GO
IF OBJECT_ID('t') IS NOT NULL DROP TABLE t
GO
CREATE TABLE t(
	[Date] DATE,
	[ItemID] INT,
	Stock BIT,
	City NVARCHAR(10)	
)
GO
INSERT INTO t
          select '2018-09-01',1,1,'北京'
union all select '2018-09-01',1,0,'上海'
union all select '2018-09-01',2,1,'北京'
union all select '2018-09-01',2,1,'上海'
union all select '2018-09-01',3,0,'北京'
union all select '2018-09-01',3,0,'上海'
union all select '2018-09-02',1,1,'北京'
union all select '2018-09-02',1,1,'上海'
union all select '2018-09-02',2,1,'北京'
union all select '2018-09-02',2,0,'上海'
union all select '2018-09-02',3,0,'北京'
union all select '2018-09-02',3,1,'上海'
GO
------------- 以上为测试表及测试数据 -------------

SELECT [Date],COUNT(DISTINCT ItemID) AS cnt 
FROM t 
WHERE Stock=1
GROUP BY [Date]
/*
Date       cnt
---------- -----------
2018-09-01 2
2018-09-02 3
*/

22,207

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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