0

今月と今年のすべての申請日を返したいと思います。これは簡単なはずですが、わかりません。今月は 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 
4

1 に答える 1

6

結合はまったく必要ありません。

tblEventDates から LoanID 列をカウントし、現在の月または現在の年に一致する日付に基づいて条件付きでカウントしたいと考えています。

それで:

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 は加算されません。実際には、その年のすべてを照会しているだけなので、年の条件を実行する必要さえありません。

于 2008-10-01T21:59:02.607 に答える