我在使用 SQL 方面非常陌生,我尝试做的是仅使用月份和年份选择 waterUsage 和 electrcityUsage,并选择上一年的 waterUsage 和 electrcityUsage。
然而,我似乎无法找出使用日期来完成这项工作的适当方法。
表:每月账单
1. billingDate 01-SEP-15
2. waterUsage varchar(256)
3. electrcityUsage varchar(256)
4. accountNumber varchar(256)
select electrcityUsage, waterUsage
from monthlyBill
where accountNumber ='211'
and billingDate = '12-12' /*,month, year*/
or
select electrcityUsage, waterUsage
from monthlyBill
where accountNumber ='211'
and billingDate = DATEADD(year,-1,GETDATE()); /*,previous year*/
一种选择是使用TO_CHAR
:
select electrcityUsage, waterUsage
from monthlyBill
where accountNumber = '211' and
to_char(billing_date, 'MM-YYYY') = '12-2012'
这假设您实际上使用的是 Oracle,而不是 SQL Server。
如果你想要2012
and 2011
然后继续添加另一个条件WHERE
条款。我可能会用EXTRACT
在这种情况下:
select electrcityUsage, waterUsage
from monthlyBill
where accountNumber = '211' and
extract(month from billingDate) = 12 and
extract(year from billingdate) in (2011, 2012)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)