ЛЮБОЙ и ЛЮБОЙ - PullRequest
       22

ЛЮБОЙ и ЛЮБОЙ

1 голос
/ 08 февраля 2010

Поддерживает ли SQL Server 2005 ANY или EVERY с HAVING?

Предположим, у меня есть две таблицы:

Training(TrainingID, TrainingCloseDate) and
TrainingDetail(TrainingDetailID, TrainingID, LKClassCode, CompletionDate).

Для одного TrainingID в TrainingDetail может быть несколько значений с разными LKClassCode. Мне нужно найти все TrainingID, в которых есть хотя бы один TrainingDetailID с CompletionDate в период с 01.01.2009 по 01.01.2010.

Когда я пытался с HAVING ANY, я получил ошибку:

Incorrect syntax near the keyword 'ANY'.

Если он не поддерживается, не могли бы вы предложить альтернативу?

Что делать, если мне нужно найти все TrainingID, которые имеют, по крайней мере, один TrainingDetailID с CompletionDate в период с 01.01.2009 по 01.01.2010 или TrainingCloseDate = '5 / 5/2009 ''?

1 Ответ

0 голосов
/ 08 февраля 2010

Мне нужно найти все TrainingID, в которых есть хотя бы один TrainingDetailID с CompletionDate в период с 01.01.2009 по 01.01.2010.

SELECT TrainingID
FROM TrainingDetail
WHERE CompletionDate BETWEEN date1 AND date2

Возможно, вам потребуется преобразовать даты в правильный формат (отметка времени?).

Что делать, если мне нужно найти все TrainingID, в которых есть хотя бы один TrainingDetailID с CompletionDate в период с 01.01.2009 по 01.01.2010 или TrainingCloseDate = '5/5/2009'??

SELECT TD.TrainingID
FROM TrainingDetail TD
  JOIN Training T ON T.TrainingID = TD.TrainingID
WHERE (CompletionDate BETWEEN date1 AND date2) OR TrainingCloseDate = '5/5/2009'
...