[英]UNION ALL, semi-overall COUNT, DIFFERENT TABLES
在前三個表中,我有四個表fiche_visite_autre
, fiche_visite_dpf
, fiche_visite
和Magasin
,我的日期與訪問商店的日期相對應。
有了這個請求,我從三個表中獲得了每個商店的訪問次數:
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.