Я пытаюсь использовать несколько запросов на выборку, чтобы объединить несколько предложений WHERE
для одних и тех же данных в 1 запрос.Это работает, когда я присоединяюсь к 1 подзапросу, но как только я пытаюсь присоединиться ко второму, я получаю синтаксическую ошибку, через которую мне трудно работать.Любая помощь будет принята с благодарностью!
SELECT [CONSULTATION].Theatre
,[CONSULTATION].[Order Type]
,[CONSULTATION].[Service Type]
,[CONSULTATION].[ORDERS]
,[CONSULTATION].[CONSULTATION DAYS]
,[DESIGN].[DESIGN DAYS]
FROM (
SELECT [Order Metrics].Theatre
,[Order Metrics].[Order Type]
,[Order Metrics].[Service Type]
,Count([Order Metrics].[Order ID]) AS ORDERS
,ROUND(AVG(([Order Metrics].HOURS) / 24), 1) AS [CONSULTATION DAYS]
FROM [Order Metrics]
WHERE (
(([Order Metrics].[Order Status]) = "closed")
AND ((DateDiff("d", [Order Metrics] ! [Date Created], Now())) < 366)
AND (
(
[ORDER METRICS] ! FROM
) = "CONSULTATION"
)
)
GROUP BY [Order Metrics].Theatre
,[Order Metrics].[Order Type]
,[Order Metrics].[Service Type]
HAVING LEN([ORDER METRICS].[THEATRE]) > 1
) AS CONSULTATION
INNER JOIN (
SELECT [Order Metrics].Theatre
,[Order Metrics].[Order Type]
,[Order Metrics].[Service Type]
,Count([Order Metrics].[Order ID]) AS ORDERS
,ROUND(AVG(([Order Metrics].HOURS) / 24), 1) AS [DESIGN DAYS]
FROM [Order Metrics]
WHERE (
(([Order Metrics].[Order Status]) = "closed")
AND ((DateDiff("d", [Order Metrics] ! [Date Created], Now())) < 366)
AND (
(
[ORDER METRICS] ! FROM
) = "DESIGN"
)
)
GROUP BY [Order Metrics].Theatre
,[Order Metrics].[Order Type]
,[Order Metrics].[Service Type]
HAVING LEN([ORDER METRICS].[THEATRE]) > 1
) AS DESIGN ON ([CONSULTATION].Theatre = [DESIGN].THEATRE)
AND ([CONSULTATION].[Order Type] = [DESIGN].[ORDER TYPE])
AND ([CONSULTATION].[Service Type] = [DESIGN].[SERVICE TYPE])
INNER JOIN (
SELECT [Order Metrics].Theatre
,[Order Metrics].[Order Type]
,[Order Metrics].[Service Type]
,Count([Order Metrics].[Order ID]) AS ORDERS
,ROUND(AVG(([Order Metrics].HOURS) / 24), 1) AS [QUOTE REQUEST DAYS]
FROM [Order Metrics]
WHERE (
(([Order Metrics].[Order Status]) = "closed")
AND ((DateDiff("d", [Order Metrics] ! [Date Created], Now())) < 366)
AND (
(
[ORDER METRICS] ! FROM
) = "QUOTE REQUEST"
)
)
GROUP BY [Order Metrics].Theatre
,[Order Metrics].[Order Type]
,[Order Metrics].[Service Type]
HAVING LEN([ORDER METRICS].[THEATRE]) > 1
) AS [QUOTE REQUEST] ON ([CONSULTATION].Theatre = [QUOTE REQUEST].THEATRE)
AND ([CONSULTATION].[Order Type] = [QUOTE REQUEST].[ORDER TYPE])
AND ([CONSULTATION].[Service Type] = [QUOTE REQUEST].[SERVICE TYPE]);