簡體   English   中英

UNION ALL,半總計數,不同表

[英]UNION ALL, semi-overall COUNT, DIFFERENT TABLES

在前三個表中,我有四個表fiche_visite_autrefiche_visite_dpffiche_visiteMagasin ,我的日期與訪問商店的日期相對應。

有了這個請求,我從三個表中獲得了每個商店的訪問次數:

SELECT * FROM(
SELECT fiche_visite_autre.Code_CM as Code_CM, magasin.Nom_Mag, 
COUNT(fiche_visite_autre.Date_Visite) as Nombre_visite, cible_visite.Cible as Cible 
FROM magasin, cible_visite, fiche_visite_autre 
WHERE magasin.Code_CM = cible_visite.Code_CM AND cible_visite.Code_CM = 
fiche_visite_autre.Code_CM GROUP BY fiche_visite_autre.Code_CM

UNION ALL

SELECT fiche_visite_dpf.Code_CM as Code_CM,magasin.Nom_Mag, 
COUNT(fiche_visite_dpf.Date_Visite) as Nombre_visite, cible_visite.Cible as 
Cible
FROM magasin, cible_visite, fiche_visite_dpf 
WHERE magasin.Code_CM = cible_visite.Code_CM AND cible_visite.Code_CM = fiche_visite_dpf.Code_CM GROUP BY fiche_visite_dpf.Code_CM

UNION ALL

SELECT fiche_visite.Code_CM as Code_CM,magasin.Nom_Mag, 
COUNT(fiche_visite.Date_Visite) as Nombre_visite, cible_visite.Cible as Cible 
FROM magasin, cible_visite, fiche_visite
WHERE magasin.Code_CM = cible_visite.Code_CM AND cible_visite.Code_CM = 
fiche_visite.Code_CM GROUP BY fiche_visite.Code_CM) as tmp GROUP BY Code_CM 
ORDER BY Nombre_visite DESC

返回的訪問表

問題是我在兩個不同的表中兩次到了'BAGNOLES DE L'ORNE'商店,但這里只有一個表。

我的目標是像在'NANTERRE'商店中獲得正確的訪問次數一樣,該商店在同一張表中獲得2次訪問。

(對不起,我的英語我是法語:)

我的解決方案:

SELECT Code_CM, Nom_Mag, SUM(Nombre_visite) as Nombre_visite, Cible FROM (
            SELECT fiche_visite_autre.Date_Visite as DateVisite, fiche_visite_autre.Code_CM as Code_CM, magasin.Nom_Mag as Nom_Mag, COUNT(fiche_visite_autre.Date_Visite) as Nombre_visite, cible_visite.Cible as Cible 
            FROM magasin, cible_visite, fiche_visite_autre 
            WHERE magasin.Code_CM = cible_visite.Code_CM AND cible_visite.Code_CM = fiche_visite_autre.Code_CM GROUP BY Code_CM 

            UNION ALL

            SELECT fiche_visite_dpf.Date_Visite as DateVisite, fiche_visite_dpf.Code_CM as Code_CM,magasin.Nom_Mag as Nom_Mag, COUNT(fiche_visite_dpf.Date_Visite) as Nombre_visite, cible_visite.Cible as Cible
            FROM magasin, cible_visite, fiche_visite_dpf 
            WHERE magasin.Code_CM = cible_visite.Code_CM AND cible_visite.Code_CM = fiche_visite_dpf.Code_CM GROUP BY Code_CM

            UNION ALL

            SELECT fiche_visite.Date_Visite as DateVisite, fiche_visite.Code_CM as Code_CM,magasin.Nom_Mag as Nom_Mag, COUNT(fiche_visite.Date_Visite) as Nombre_visite, cible_visite.Cible as Cible 
            FROM magasin, cible_visite, fiche_visite
            WHERE magasin.Code_CM = cible_visite.Code_CM AND cible_visite.Code_CM = fiche_visite.Code_CM GROUP BY Code_CM
            ) as tmp WHERE DateVisite BETWEEN 'start' AND 'end' GROUP BY Code_CM ORDER BY Nombre_visite DESC

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM