Присоединиться к результатам 3 запросов - PullRequest
0 голосов
/ 12 октября 2019

У меня есть 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

столбцы должны быть результатом после объединения:

[et_libelle] (Query 1),
COUNT([GP_NUMERO]) (Query 1),
COUNT([GP_NUMERO]) (Query 2),
MFL_NBPASSAGEAPRES (Query 3)

Ответы [ 2 ]

0 голосов
/ 12 октября 2019

Если бы мне пришлось размышлять, я бы предположил, что вы хотите:

select e.*,
       (select count(*)
        from piece p
        where p.gp_etablissement = e.et_etablissement
       ),
       (select count(*)
        from MCARTEFIDENT mfc
        where mfc.MFC_ETABLISSEMENT = e.et_etablissement
       ),
       (select MFL_NBPASSAGEAPRES  -- perhaps a `sum()` here???
        from MCARTEFIDENT mfl
        where mfl.MFL_ETABLISSEMENT = e.et_etablissement
       )       
from etabliss e;
0 голосов
/ 12 октября 2019

вы можете использовать ваши 3 запроса в качестве подзапроса и присоединиться

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]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...