Я написал этот запрос:
SELECT
'APRIL _DATA_PASSED Only' AS 'ONE MONTH Audit_name',
SUM(count2) AS Audit_count
FROM
(SELECT
vCCSF.ClientName,
s.Name as SupplierName,
f.name as firstname,
vCCSF.CategoryName,
r.Passed as passed,
MONTH(CONVERT(DATE, r.CreateDate)) AS month,
YEAR(CONVERT(DATE, r.CreateDate)) AS year,
source.name,
COUNT(*) AS count2
FROM
notr n
JOIN
NotrResult nr ON n.id = nr.NotrId
JOIN
results r ON r.NotrResultId = nr.id
JOIN
ProductLineFacilityMap plfm ON n.ProductLineFacilityMapId = plfm.id
JOIN
Facility f ON plfm.FacilityId = f.ID
JOIN
vClientCategorySubcategoryFilters vCCSF ON vCCSF.ProductLineId = plfm.ProductLineId
JOIN
Parameter p ON r.ParameterId = p.Id
JOIN
Supplier s ON f.SupplierId = s.id
JOIN
source ON p.SourceId = source.id
WHERE
n.Active = 1
AND n.Completed = 1
AND r.Active = 1
AND r.Passed = 1
AND r.CreateDate BETWEEN '2018-04-01' AND '2018-04-30'
GROUP BY
vCCSF.ClientName, s.Name, f.name,
vCCSF.CategoryName, r.Passed, source.name,
MONTH(CONVERT(DATE, r.CreateDate)),
YEAR(CONVERT(DATE, r.CreateDate))
HAVING
vCCSF.ClientName LIKE 'Mc%'
AND s.name LIKE 'Ronpak%'
AND vCCSF.CategoryName LIKE 'Paper Bag%'
AND source.name = 'Conversion') AS tb
UNION ALL
SELECT
'APRIL _Conversion_DATA_BOTH' AS 'ONE MONTH Audit_name',
SUM(count1) AS Audit_count
FROM
(*same query as above, excluding this filter : r.Passed =1*) AS tb2
UNION ALL
SELECT
'APRIL _Conversion_DATA_BOTH' AS 'ONE MONTH Audit_name',
SUM(count1) AS Audit_count
FROM
(**same as above*
AND r.Passed = 1
GROUP BY
*same as above*
HAVING
*same as above but changed the source filter*
AND source.name = 'Raw Materials') AS tb3
UNION ALL
SELECT
'APRIL _Raw Materials_DATA_BOTH' AS 'ONE MONTH Audit_name',
SUM(count1) AS Audit_count
FROM
(*same query as above, excluding this filter : r.Passed = 1*
AND source.name = 'Raw Materials') AS tb4
Возвращается этот вывод:
|ONE MONTH Audit_name| |Audit_count|
|APRIL _Conversion_McDonalds_Ronpak_Paper Bags_PASSED Only| |124|
|APRIL _Conversion_McDonalds_Ronpak_Paper Bags_BOTH| |150|
|APRIL_Raw Materials_McDonalds_Ronpak_Paper Bags_PASSED Only| |16|
|APRIL _Raw Materials_McDonalds_Ronpak_Paper Bags_BOTH| |70|
Задача
В поисках решения, где я мог бы выполнить деление
- первый ряд / второй ряд
- третий ряд / четвертый ряд
UNION ALL
используется намеренно для получения всех результатов на одной странице, но было бы замечательно, если бы решение было таким образом
Conversion Raw Material Overall
(PASSED only / ( PASSED only / BOTH) SUM(Conversion+ Raw Material
)passed /
BOTH conv and raw
Есть предложения, пожалуйста?