如何将两个日期之间的所有年份、月份显示为整数?
在 SQL Server 2000 中,我需要在客户订单的临时表中以整数形式列出年、月。
如果该月份不存在,我仍然需要列出年、月、$0.00。
在 SQL Server 2000 中执行此操作的最佳方法是什么?
01/01/2010
到 07/01/2010
将产生:
__Year__, __Month__ , __Billed__
2010,1,$5000.00
2010,2,$6000.00
2010,3,$8000.00
2010,4,$0.00
2010,5,$4000.00
2010,6,$4500.00
使用此代码:
select grp.* from
(
select year(orderdate) as yr,
month(orderdate) as mn,
sum(billed)
from Orders
group by year(orderdate), month(orderdate), billed
) grp
order grp.yr, grp.mn
是否有一个简单的解决方案可以不跳过没有账单的月份并添加 0.00 美元?
In SQL Server 2000, I need to list out the year, month as ints in a temp table from orders of a customer.
If the month doesn't exist I still need to list the year, month, $0.00.
What is the best way to do this in SQL Server 2000?
01/01/2010
to 07/01/2010
would yield:
__Year__, __Month__ , __Billed__
2010,1,$5000.00
2010,2,$6000.00
2010,3,$8000.00
2010,4,$0.00
2010,5,$4000.00
2010,6,$4500.00
using this code:
select grp.* from
(
select year(orderdate) as yr,
month(orderdate) as mn,
sum(billed)
from Orders
group by year(orderdate), month(orderdate), billed
) grp
order grp.yr, grp.mn
Is there a simple solution to not skip months where there was no billing and add $0.00?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
对于 2005+(抱歉我错过了 2000 的要求):
对于 2000,它只是略有不同:
现在无可否认,我没有方便测试的 2000 实例 - 这只是即兴的。
For 2005+ (sorry I missed the 2000 requirement):
For 2000 it's only slightly different:
Now admittedly I don't have a 2000 instance handy to test - this is just off the cuff.
制作一个包含 0 到 100,000 或其他数字的数字表。
然后是这样的:
2005 年使用公用表表达式更容易一些。
Make a numbers table containing numbers from 0 to 100,000 or whatever.
Then something like this:
A little easier in 2005 using common table expressions.