Смущен на счет (*) и сам присоединяется - PullRequest
0 голосов
/ 02 октября 2008

Я хочу вернуть все даты подачи заявок на текущий месяц и текущий год. Это должно быть просто, однако я не могу понять это. Я знаю, что у меня есть 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 

1 Ответ

6 голосов
/ 02 октября 2008

Вам не нужны никакие объединения.

Вы хотите посчитать столбец loanID из tblEventDates и сделать это условно на основе даты, соответствующей текущему месяцу или текущему году.

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. На самом деле, даже не нужно указывать условие для года, потому что вы просто запрашиваете все за этот год.

...