Sql server 多栏mssql按日期的每日报告
我想像这样显示每日报告Sql server 多栏mssql按日期的每日报告,sql-server,Sql Server,我想像这样显示每日报告 Fulltime Contract Casual 2018/06/04 1 0 0 2018/06/05 1 0 0 2018/06/06 0 1 1 2018/06/07 2 1 0 2018/06/08 1 1 1 2018/06/09 0 1 1 Date
Fulltime Contract Casual
2018/06/04 1 0 0
2018/06/05 1 0 0
2018/06/06 0 1 1
2018/06/07 2 1 0
2018/06/08 1 1 1
2018/06/09 0 1 1
Date Jobtype Meal
2018/06/04 Fulltime 1
2018/06/05 Fulltime 1
2018/06/06 Casual 1
2018/06/06 Contract 1
2018/06/07 Casual 1
2018/06/07 Contract 2
2018/06/08 Casual 1
2018/06/08 Contract 1
2018/06/08 Fulltime 1
2018/06/09 Casual 1
2018/06/09 Contract 1
但我所拥有的是这样的
Fulltime Contract Casual
2018/06/04 1 0 0
2018/06/05 1 0 0
2018/06/06 0 1 1
2018/06/07 2 1 0
2018/06/08 1 1 1
2018/06/09 0 1 1
Date Jobtype Meal
2018/06/04 Fulltime 1
2018/06/05 Fulltime 1
2018/06/06 Casual 1
2018/06/06 Contract 1
2018/06/07 Casual 1
2018/06/07 Contract 2
2018/06/08 Casual 1
2018/06/08 Contract 1
2018/06/08 Fulltime 1
2018/06/09 Casual 1
2018/06/09 Contract 1
我所尝试的:
select Date, Jobtype,'Meal'=(COUNT(Date))
from CanLog
where WW BETWEEN '2018/06/06' and '2018/06/09'
group by Date, Jobtype
order by 1
不确定您的WW列来自何处。我以为是日期栏。如果不是,请调整 您需要使用UNPIVOT运算符并丢弃等于0的记录:
select u.date, u.jobtype, u.meal
from canlog
unpivot
(
meal
for jobtype in ( fulltime, contract, casual )
) u
where
[Date] between '2018/06/06' and '2018/06/09'
and meal <> 0;
我想你可以试试这个:
SELECT Date,
(SELECT COUNT(*) FROM CanLog as c WHERE c.WW = clog.WW AND jobtype = 'fulltime') AS Fulltime,
(SELECT COUNT(*) FROM CanLog as c WHERE c.WW = clog.WW AND jobtype = 'contract') AS Contract,
(SELECT COUNT(*) FROM CanLog as c WHERE c.WW = clog.WW AND jobtype = 'casual') AS Casual
FROM CanLog AS clog
WHERE WW BETWEEN '2018/06/06' AND '2018/06/09'
GROUP BY Date, Jobtype
ORDER BY Date
在括号内选择“计算一天中给定字符串的数量”。
如果你用小写字母和所有放大的字母书写,那没关系,sql不区分大小写选择不同的日期,
从CanLog中选择COUNT作为c,其中c.WW=clog.WW,jobtype='fulltime'作为fulltime,
从CanLog中选择COUNT作为c,其中c.WW=clog.WW,jobtype='contract'作为contract,
从CanLog中选择COUNT*作为c,其中c.WW=clog.WW,jobtype='casual'作为casual
从CanLog到clog
其中WW介于“2018/06/06”和“2018/06/09”之间
按日期、作业类型分组
按日期下单成功了,谢谢。我必须在选择的日期中添加不同的内容