我有四个表fiche_visite_autre
,fiche_visite_dpf
,fiche_visite
和Magasin
,在前三个表中,我的日期对应于访问商店的日期。< / p>
通过这个请求,我可以从三个表中获得每个商店的访问次数:
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&#OR; ORNE&#39;在两个不同的表中,但在这里只有一个。
我的目标是获得正确的访问次数,就像我在商店购买的那样#NANTERRE&#39;在同一张桌子上有2次访问。
(对不起我的英语我和法语:)
答案 0 :(得分:0)
我的解决方案:
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