сравнивая две даты в разных столбцах AS - PullRequest
0 голосов
/ 05 марта 2019

У меня есть два столбца со значениями даты. Я хотел бы отфильтровать их, чтобы увидеть результат только тогда, когда два столбца имеют одинаковые значения.У меня есть два вопроса в части «Где».Кто-нибудь может мне с этим помочь?1) Как я могу сравнить значение между этими двумя столбцами со значениями даты?2) Если у меня вместо даты есть значение varchar, как я могу сравнить два значения?

SELECT [USERNAME], count(*) AS [NumberOfHappening], min([date1]) AS [FirstDate], max([date2]) AS [SecondDate]
FROM TableMain

WHERE CAST([FirstDate] AS DATE) = CAST([SecondDate] AS DATE)
GROUP BY  [USERNAME]
ORDER BY 'NumberOfHappening' DESC

Спасибо.

1 Ответ

0 голосов
/ 05 марта 2019

Правильно ли введены исходные значения даты или значения даты / времени хранятся в строковых столбцах?Если это так, вы должны действительно изменить это ...

Если я правильно понял, вы хотите найти записи, где date1 и date2 находятся в один и тот же день.Приведение DATETIME к DATE избавит от временной части.

Вы можете использовать CTE для непосредственного использования псевдонимов столбцов

;WITH cte AS
(
    SELECT [USERNAME], count(*) AS [NumberOfHappening], min([date1]) AS [FirstDate], max([date2]) AS [SecondDate]
    FROM TableMain
    GROUP BY  [USERNAME]
)
SELECT * 
FROM cte
WHERE CAST([FirstDate] AS DATE) = CAST([SecondDate] AS DATE)
ORDER BY NumberOfHappening DESC;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...