这是一个非常尴尬的标题:)
我需要编写一份报告,按日期生成拒绝列表。日期存储为日期时间字段,并按日期时间返回拒绝次数。
这是我的SQL:
select ps.date_scheduled, count(*) from payments_schedule ps
left join invoices i on i.invoice_id=ps.invoice_id
left join orders o on o.order_id=i.order_id
where ps.date_scheduled>'2009-06-01 00:00:00'
group by ps.date_scheduled
2009-06-25 14:13:04 1 2009-06-25 14:13:07 1 ..等...
不酷。我想要的是这个: 2009-06-25 25 2009-06-26 31 等...
我该怎么做?谢谢:))
答案 0 :(得分:7)
SELECT CAST(ps.date_scheduled AS DATE), COUNT(*)
FROM payments_schedule ps
LEFT JOIN
invoices i
ON i.invoice_id = ps.invoice_id
LEFT JOIN
orders o
ON o.order_id = i.order_id
WHERE ps.date_scheduled > '2009-06-01 00:00:00'
GROUP BY
CAST(ps.date_scheduled AS DATE)
答案 1 :(得分:4)
GROUP BY DATE(ps.date_scheduled)
答案 2 :(得分:0)
将您的查询更改为select DATEADD(day, 0, DATEDIFF(day, 0, ps.date_scheduled))
。这将仅保留日期时间的日期部分。您还需要按相同的表达式进行分组。
编辑:这是解决SQL Server问题的方法。