Sql server 基于时间段的订单列表
我有一个表orderdetails表,我想要从2015年1月6日到2015年1月6日的订单列表,根据00-01和01-02这样的时间段,每天低于60个订单Sql server 基于时间段的订单列表,sql-server,datetime,group-by,orders,Sql Server,Datetime,Group By,Orders,我有一个表orderdetails表,我想要从2015年1月6日到2015年1月6日的订单列表,根据00-01和01-02这样的时间段,每天低于60个订单 select convert(datetime, Convert(varchar(50), OrderDate, 101)) as dateorder, count(orderid) as ordercount from orderdetails where OrderDate between convert(date
select
convert(datetime, Convert(varchar(50), OrderDate, 101)) as dateorder,
count(orderid) as ordercount
from
orderdetails
where
OrderDate between convert(datetime,Convert(varchar(50),'6/01/2015',101)) and convert(datetime,Convert(varchar(50),'06/30/2015',101))
and transactionid is not null
and DATEPART(HOUR,OrderDate) between '1' and '2'
group by
convert(datetime, Convert(varchar(50), OrderDate, 101))
having
count(orderid) < 60
但是这个查询显示了错误的列表。。。它不显示在countorderid<60订单中,它显示的是总订单,不低于每天订单60…以表格形式显示您的期望输出。时间段如00-01和01-02。这不清楚。为什么订单表transactionid将为空。
select * from (
select
convert(datetime, Convert(varchar(50), OrderDate, 101)) as dateorder,
count(orderid) as ordercount
from
orderdetails
where
OrderDate between convert(datetime,Convert(varchar(50),'6/01/2015',101)) and convert(datetime,Convert(varchar(50),'06/30/2015',101))
and transactionid is not null
and DATEPART(HOUR,OrderDate) between '1' and '2'
group by
convert(datetime, Convert(varchar(50), OrderDate, 101)) ) t
where ordercount < 60