【发布时间】:2016-07-09 06:28:34
【问题描述】:
我有一张表,我必须在其中按每天、每周和每月计算分配给每个用户的总行数。
已发行桌书
BOOKID ISSUEDUSER DATE
1 A 20160708
2 A 20160709
3 A 20160708
4 A 20150102
5 B 20160709
6 C 20160708
7 C 20160708
现在我必须计算每天、每周和每月发给每个用户的书籍
每天是今天 (20160709) 每周是周日到周六 每月是整月
结果应该是
ISSUEDUSER DAILYBOOKS WEEKLYBOOKS MONTHLYBOOKS
A 1 3 3
B 1 1 1
C 0 2 2
我已经为每日发布完成了这个 SQL
SELECT ISSUEDUSER, COUNT(BOOKID) AS DAILYBOOKS
FROM BOOKSISSUED
WHERE DATE = CONVERT(VARCHAR(11), SYSDATETIME(), 112)
GROUP BY ISSUEDUSER
有人可以帮我写一个组合 SQL吗?
谢谢
艾登
【问题讨论】:
-
您的表已将日期存储为整数......哇,他们没有考虑。 DATE 无论如何都没有默认格式.... :/
-
如何知道他们是否有每日图书出租? BookID 是否每天重复?或者你只是用现在来计算每天有多少书(一周以内的)和每周的书(几周内的?)和月?对您想看到的内容有点困惑。
-
书籍应仅按当前日、当前周(周日至周六)和当前月计算。 Previousd 和任何其他不应计算和显示,ID 不重复。
-
如您稍后的评论中或者您是否只是使用现在来计算每天有多少书籍(一周以下的书籍)。仅当周和当月。我只是不想数一下发行了多少。
-
看看我的酷回答。 :)
DATEPART是一头野兽。
标签: sql sql-server database