Я хотел бы объединить два запроса T SQL, приведенных ниже, в один запрос.
-------------------------------------
USE [ourDB]
-------------------------------------
Select --
id
, count(id) as count_30_days_or_less
--
FROM Col1 c1 WITH (NOLOCK)
-- -- -- -- -- -- --
LEFT JOIN Col2 c2 WITH (NOLOCK)
ON (c1.id = c2.foreign_id)
-- -- -- -- -- -- --
WHERE
(
(DATEDIFF( dd, cast(c1.ourDateTime as Date), cast(GETDATE() as Date) ) <= 30)
)
GROUP BY id
ORDER BY id
-------------------------------------
Select --
id
, count(id) as count_45_days_or_less
--
FROM Col1 c1 WITH (NOLOCK)
-- -- -- -- -- -- --
LEFT JOIN Col2 c2 WITH (NOLOCK)
ON (c1.id = c2.foreign_id)
-- -- -- -- -- -- --
WHERE
(
(DATEDIFF( dd, cast(c1.ourDateTime as Date), cast(GETDATE() as Date) ) <= 45)
)
GROUP BY id
ORDER BY id
-------------------------------------
Каждый первый запрос будет иметь формат id count_YY_days_or_less
цель состоит в том, чтобы вывести запрос в формате: id count_30_days_or_less count_45_days_or_less
Примечание: потенциально возможно, что в дополнение к различным значениям в столбце могут отображаться more экземпляры id для второго счета.
Принятый ответ правильный.
У меня есть «вторая часть»: Часть 2. Есть ли способ убедиться, что c1.id «различен» в количество возвратов из вышеприведенного запроса?
(См. комментарий принятого ответа для ответа «второй части»)
Это должно быть не зависит от версии, но я использую Microsoft SQL Server 2014 (SP3) ) (KB4022619) - 12,0,6024,0 (X64) 7 сентября 2018 года 01:37:51