我想返回当月和当年的所有申请日期。这一定很简单,但我无法弄清楚。我知道我当前有2个日期,当年有90个日期。右,左,外,内在我已经尝试过所有这些,只是在墙上抛出代码,试图看看会有什么东西会粘住,而且没有任何东西可以工作。我要么两列都得2,要么两列得180。这是我最新的选择声明。
SELECT count(a.evdtApplication) AS monthApplicationEntered,
count (b.evdtApplication) AS yearApplicationEntered
FROM tblEventDates a
RIGHT OUTER JOIN tblEventDates b ON a.LOANid = b.loanid
WHERE datediff(mm,a.evdtApplication,getdate()) = 0
AND datediff(yy,a.evdtApplication, getdate()) = 0
AND datediff(yy,b.evdtApplication,getdate()) = 0
答案 0 :(得分:6)
您根本不需要任何联接。
您想从tblEventDates计算loanID列,并且您希望根据与当前月份或当前年份匹配的日期有条件地执行此操作。
SO:
SELECT SUM( CASE WHEN Month(a.evdtApplication) = MONTH(GEtDate() THEN 1 END) as monthTotal,
count(*)
FROM tblEventDates a
WHERE a.evdtApplication BETWEEN '2008-01-01' AND '2008-12-31'
这样做是选择今年的所有活动日期,并添加符合您条件的活动日期。如果它与当前月份不匹配,它将不会添加1.实际上,甚至不需要为年度做一个条件,因为你只是查询那一年的所有内容。