Если вы в SQL Server:
;With Table1CTE AS
(
SELECT CONVERT(DATETIME,CONVERT(VARCHAR,Date1,112)) AS Date1,
COUNT(*) AS Table1
FROM Table1
GROUP BY CONVERT(DATETIME,CONVERT(VARCHAR,Date1,112))
)
,Table2CTE AS
(
SELECT CONVERT(DATETIME,CONVERT(VARCHAR,Date1,112)) AS Date1,
COUNT(*) AS Table2
FROM Table2
GROUP BY CONVERT(DATETIME,CONVERT(VARCHAR,Date1,112))
)
,Table3CTE AS
(
SELECT CONVERT(DATETIME,CONVERT(VARCHAR,Date1,112)) AS Date1,
COUNT(*) AS Table3
FROM Table3
GROUP BY CONVERT(DATETIME,CONVERT(VARCHAR,Date1,112))
)
,Table4CTE AS
(
SELECT CONVERT(DATETIME,CONVERT(VARCHAR,Date1,112)) AS Date1,
COUNT(*) AS Table4
FROM Table4
GROUP BY CONVERT(DATETIME,CONVERT(VARCHAR,Date1,112))
)
SELECT Date1,
Table1,
Table2,
Table3,
Table4
FROM Table1CTE T1
FULL OUTER JOIN Table2CTE T2
ON T1.date1 = T2.date1
FULL OUTER JOIN Table3CTE T3
ON T1.date1 = T3.date1
FULL OUTER JOIN Table4CTE T4
ON T1.date1 = T4.date1
Я использую FULL OUTER JOIN
, как я не знаю, все даты присутствуют во всех таблицах.
Вы всегда можете попробовать присоединиться подзапросов:
SELECT Date1,
Table1,
Table2,
Table3,
Table4
FROM (
SELECT CONVERT(DATETIME,CONVERT(VARCHAR,Date1,112)) AS Date1,
COUNT(*) AS Table1
FROM Table1
GROUP BY CONVERT(DATETIME,CONVERT(VARCHAR,Date1,112))
) T1
FULL OUTER JOIN
(
SELECT CONVERT(DATETIME,CONVERT(VARCHAR,Date1,112)) AS Date1,
COUNT(*) AS Table2
FROM Table2
GROUP BY CONVERT(DATETIME,CONVERT(VARCHAR,Date1,112))
) T2
ON T1.date1 = T2.date1
FULL OUTER JOIN
(
SELECT CONVERT(DATETIME,CONVERT(VARCHAR,Date1,112)) AS Date1,
COUNT(*) AS Table3
FROM Table3
GROUP BY CONVERT(DATETIME,CONVERT(VARCHAR,Date1,112))
) T3
ON T1.date1 = T3.date1
FULL OUTER JOIN
(
SELECT CONVERT(DATETIME,CONVERT(VARCHAR,Date1,112)) AS Date1,
COUNT(*) AS Table4
FROM Table4
GROUP BY CONVERT(DATETIME,CONVERT(VARCHAR,Date1,112))
) T4
ON T1.date1 = T4.date1
я имею в виду, что у меня есть 8 таблицы для подсчета. извините за непонятные – Anue
Пожалуйста, просмотрите ваш вопрос, так как неясно. Кроме того, я не вижу таблицу 8? – user172839