sql - 加入 3 个查询的结果
问题描述
我有 3 个有效的查询,但我不知道如何将它们组合在一个查询中。表格:
------------------ -------------------------- -----------------
PIECE MCARTEFIDENT MCARTEFIDLIG
------------------ -------------------------- -----------------
ET_LIBELLE : Store MFC_ETABLISSEMENT : STORE MFL_ETABLISSEMENT
GP_NUMERO : TICKET MFC_VALDISPOTHEO MFL_NBPASSAGEAPRES
------------------- --------------------------
--QUERY 1
select [et_libelle] AS [STORE NAME],COUNT([GP_NUMERO])
FROM PIECE
LEFT OUTER JOIN ETABLISS ET1 ON gp_etablissement=ET1.ET_ETABLISSEMENT
GROUP BY et_libelle
--QUERY 2
SELECT MFC_ETABLISSEMENT as [STORE NAME], COUNT (MFC_VALDISPOTHEO)
FROM MCARTEFIDENT
LEFT OUTER JOIN ETABLISS ET2 ON MFC_ETABLISSEMENT=ET2.ET_ETABLISSEMENT
GROUP BY MFC_ETABLISSEMENT
--QUERY 3
SELECT MFL_ETABLISSEMENT AS [STORE NAME], MFL_NBPASSAGEAPRES
FROM MCARTEFIDLIG
LEFT OUTER JOIN ETABLISS ET3 ON MFL_ETABLISSEMENT=ET3.ET_ETABLISSEMENT
GROUP BY MFL_ETABLISSEMENT
columns 应该是 combine 后的结果:
[et_libelle] (Query 1),
COUNT([GP_NUMERO]) (Query 1),
COUNT([GP_NUMERO]) (Query 2),
MFL_NBPASSAGEAPRES (Query 3)
解决方案
你可以使用你的 3 个查询作为 subqiery 并加入
select a.[STORE NAME], a.count_gp_numero, b.count_mfc_valdispotheo, c.MFL_NBPASSAGEAPRES
from (
select [et_libelle] AS [STORE NAME], COUNT([GP_NUMERO]) count_gp_numero
FROM PIECE
LEFT OUTER JOIN ETABLISS ET1 ON gp_etablissement=ET1.ET_ETABLISSEMENT
GROUP BY et_libelle
) a
left join (
SELECT MFC_ETABLISSEMENT as [STORE NAME], COUNT(MFC_VALDISPOTHEO) b.count_mfc_valdispotheo
FROM MCARTEFIDENT
LEFT OUTER JOIN ETABLISS ET2 ON MFC_ETABLISSEMENT=ET2.ET_ETABLISSEMENT
GROUP BY MFC_ETABLISSEMENT
) b on a.[STORE NAME] = b.[STORE NAME]
left join (
SELECT MFL_ETABLISSEMENT AS [STORE NAME], MFL_NBPASSAGEAPRES
FROM MCARTEFIDLIG
LEFT OUTER JOIN ETABLISS ET3 ON MFL_ETABLISSEMENT=ET3.ET_ETABLISSEMENT
GROUP BY MFL_ETABLISSEMENT
) c on a.[STORE NAME] = c.[STORE NAME]
推荐阅读
- rust - if-let 语句,在仍然借用的时候放在这里
- netlogo - Netlogo - 将标签定位在中心
- mysql - 使用最小数字删除sql中的重复项
- python - 谷歌视觉颜色提取
- swift - swift - 如何将 Any 转换为其他类并分配泛型类型
- python - tkinter,在 super().__init__ 上传递 *args *kwargs
- angular - 未捕获的错误:无法解析 HttpHeaders 的所有参数:(?)
- sparql - SPARQL 检索包含字符串的记录
- javascript - 解构时如何将字符串解析为数字?
- react-native - React-Native App 适用于模拟器 [Oreo 8.1] 但不适用于真实设备 [redmi note 5 pro , Oreo 8.1]