J'ai un petit soucis avec la mise au point d'une requête UNION.
Je la met en copie ci-dessous.
La première partie seule renvoi 16 ligne.
La deuxième partie seule en renvoie 4.
La requête UNION devrait en renvoyer 20: elle n'en renvoie que 17!
Si quelqu'un a une petite idée, qu'il soit remercié de m'en faire part!!
Philippe
SELECT Year([OPIM_DATEFINRECACQ]) AS Année, [MBDR_MONTANTRECREEL]*0.804 AS
CAHT
FROM OPIMMO_OPIM INNER JOIN MBDEPREC_MBDR ON
OPIMMO_OPIM.OPIM_ID=MBDEPREC_MBDR.OPIM_ID
WHERE (((Year([OPIM_DATEFINRECACQ])) Is Not Null) AND
(([MBDR_MONTANTRECREEL]*0.804) Is Not Null) AND
((OPIMMO_OPIM.OPIM_FINRECACQOK)=True))
UNION SELECT Year([OPIM_DATEFINRECACQ]) AS Année,
[VLIGN_TTCREEL]*(1-[VTVA_POURC]) AS CAHT
FROM OPIMMO_OPIM INNER JOIN ((VEFAFAISTYPE_VTYP INNER JOIN VEFAFAISLIB_VLIB
ON VEFAFAISTYPE_VTYP.VTYP_ID = VEFAFAISLIB_VLIB.VTYP_ID) INNER JOIN
(VEFAFAISTVA_VTVA INNER JOIN VEFAFAISLIGNE_VLIGN ON VEFAFAISTVA_VTVA.VTVA_ID
= VEFAFAISLIGNE_VLIGN.VTVA_ID) ON VEFAFAISLIB_VLIB.VLIB_ID =
VEFAFAISLIGNE_VLIGN.VLIB_ID) ON OPIMMO_OPIM.OPIM_ID =
VEFAFAISLIGNE_VLIGN.OPIM_ID
WHERE (((VEFAFAISTYPE_VTYP.VTYP_TYPE)="RECETTE") AND
((OPIMMO_OPIM.OPIM_FINRECACQOK)=True));
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Philippe Pons
Bon, j'ai trouvé:
UNION élimine les doublons par défaut. Pour forcer l'affichage des doublons: UNION ALL
"Philippe Pons" a écrit dans le message de news:44a390e4$0$1030$
Bonjour,
J'ai un petit soucis avec la mise au point d'une requête UNION. Je la met en copie ci-dessous. La première partie seule renvoi 16 ligne. La deuxième partie seule en renvoie 4. La requête UNION devrait en renvoyer 20: elle n'en renvoie que 17!
Si quelqu'un a une petite idée, qu'il soit remercié de m'en faire part!!
Philippe
SELECT Year([OPIM_DATEFINRECACQ]) AS Année, [MBDR_MONTANTRECREEL]*0.804 AS CAHT FROM OPIMMO_OPIM INNER JOIN MBDEPREC_MBDR ON OPIMMO_OPIM.OPIM_ID=MBDEPREC_MBDR.OPIM_ID WHERE (((Year([OPIM_DATEFINRECACQ])) Is Not Null) AND (([MBDR_MONTANTRECREEL]*0.804) Is Not Null) AND ((OPIMMO_OPIM.OPIM_FINRECACQOK)=True)) UNION SELECT Year([OPIM_DATEFINRECACQ]) AS Année, [VLIGN_TTCREEL]*(1-[VTVA_POURC]) AS CAHT FROM OPIMMO_OPIM INNER JOIN ((VEFAFAISTYPE_VTYP INNER JOIN VEFAFAISLIB_VLIB
ON VEFAFAISTYPE_VTYP.VTYP_ID = VEFAFAISLIB_VLIB.VTYP_ID) INNER JOIN (VEFAFAISTVA_VTVA INNER JOIN VEFAFAISLIGNE_VLIGN ON VEFAFAISTVA_VTVA.VTVA_ID
= VEFAFAISLIGNE_VLIGN.VTVA_ID) ON VEFAFAISLIB_VLIB.VLIB_ID > VEFAFAISLIGNE_VLIGN.VLIB_ID) ON OPIMMO_OPIM.OPIM_ID > VEFAFAISLIGNE_VLIGN.OPIM_ID WHERE (((VEFAFAISTYPE_VTYP.VTYP_TYPE)="RECETTE") AND ((OPIMMO_OPIM.OPIM_FINRECACQOK)=True));
Bon, j'ai trouvé:
UNION élimine les doublons par défaut.
Pour forcer l'affichage des doublons: UNION ALL
"Philippe Pons" <Philippe.Pons19@wanadoo.fr> a écrit dans le message de
news:44a390e4$0$1030$ba4acef3@news.orange.fr...
Bonjour,
J'ai un petit soucis avec la mise au point d'une requête UNION.
Je la met en copie ci-dessous.
La première partie seule renvoi 16 ligne.
La deuxième partie seule en renvoie 4.
La requête UNION devrait en renvoyer 20: elle n'en renvoie que 17!
Si quelqu'un a une petite idée, qu'il soit remercié de m'en faire part!!
Philippe
SELECT Year([OPIM_DATEFINRECACQ]) AS Année, [MBDR_MONTANTRECREEL]*0.804 AS
CAHT
FROM OPIMMO_OPIM INNER JOIN MBDEPREC_MBDR ON
OPIMMO_OPIM.OPIM_ID=MBDEPREC_MBDR.OPIM_ID
WHERE (((Year([OPIM_DATEFINRECACQ])) Is Not Null) AND
(([MBDR_MONTANTRECREEL]*0.804) Is Not Null) AND
((OPIMMO_OPIM.OPIM_FINRECACQOK)=True))
UNION SELECT Year([OPIM_DATEFINRECACQ]) AS Année,
[VLIGN_TTCREEL]*(1-[VTVA_POURC]) AS CAHT
FROM OPIMMO_OPIM INNER JOIN ((VEFAFAISTYPE_VTYP INNER JOIN
VEFAFAISLIB_VLIB
ON VEFAFAISTYPE_VTYP.VTYP_ID = VEFAFAISLIB_VLIB.VTYP_ID) INNER JOIN
(VEFAFAISTVA_VTVA INNER JOIN VEFAFAISLIGNE_VLIGN ON
VEFAFAISTVA_VTVA.VTVA_ID
= VEFAFAISLIGNE_VLIGN.VTVA_ID) ON VEFAFAISLIB_VLIB.VLIB_ID > VEFAFAISLIGNE_VLIGN.VLIB_ID) ON OPIMMO_OPIM.OPIM_ID > VEFAFAISLIGNE_VLIGN.OPIM_ID
WHERE (((VEFAFAISTYPE_VTYP.VTYP_TYPE)="RECETTE") AND
((OPIMMO_OPIM.OPIM_FINRECACQOK)=True));
UNION élimine les doublons par défaut. Pour forcer l'affichage des doublons: UNION ALL
"Philippe Pons" a écrit dans le message de news:44a390e4$0$1030$
Bonjour,
J'ai un petit soucis avec la mise au point d'une requête UNION. Je la met en copie ci-dessous. La première partie seule renvoi 16 ligne. La deuxième partie seule en renvoie 4. La requête UNION devrait en renvoyer 20: elle n'en renvoie que 17!
Si quelqu'un a une petite idée, qu'il soit remercié de m'en faire part!!
Philippe
SELECT Year([OPIM_DATEFINRECACQ]) AS Année, [MBDR_MONTANTRECREEL]*0.804 AS CAHT FROM OPIMMO_OPIM INNER JOIN MBDEPREC_MBDR ON OPIMMO_OPIM.OPIM_ID=MBDEPREC_MBDR.OPIM_ID WHERE (((Year([OPIM_DATEFINRECACQ])) Is Not Null) AND (([MBDR_MONTANTRECREEL]*0.804) Is Not Null) AND ((OPIMMO_OPIM.OPIM_FINRECACQOK)=True)) UNION SELECT Year([OPIM_DATEFINRECACQ]) AS Année, [VLIGN_TTCREEL]*(1-[VTVA_POURC]) AS CAHT FROM OPIMMO_OPIM INNER JOIN ((VEFAFAISTYPE_VTYP INNER JOIN VEFAFAISLIB_VLIB
ON VEFAFAISTYPE_VTYP.VTYP_ID = VEFAFAISLIB_VLIB.VTYP_ID) INNER JOIN (VEFAFAISTVA_VTVA INNER JOIN VEFAFAISLIGNE_VLIGN ON VEFAFAISTVA_VTVA.VTVA_ID
= VEFAFAISLIGNE_VLIGN.VTVA_ID) ON VEFAFAISLIB_VLIB.VLIB_ID > VEFAFAISLIGNE_VLIGN.VLIB_ID) ON OPIMMO_OPIM.OPIM_ID > VEFAFAISLIGNE_VLIGN.OPIM_ID WHERE (((VEFAFAISTYPE_VTYP.VTYP_TYPE)="RECETTE") AND ((OPIMMO_OPIM.OPIM_FINRECACQOK)=True));
J-Pierre
Bonjour,
Dans ce cas pr"cis, publier ton code ne sert pas à grand chose, tu devrais analyser quelles lignes sont retournées par tes 2 requêtes puis quelles lignes manquent quand tu fais une UNION. Essaie avec UNION ALL SELECT......, par défaut, UNION supprimer les doublons.
-- J-Pierre ------------------------------------------------------ http://www.mpfa.info : Le site où que j'ai dû payer pour y figurer :-( ------------------------------------------------------
"Philippe Pons" a écrit dans le message de news: 44a390e4$0$1030$
Bonjour,
J'ai un petit soucis avec la mise au point d'une requête UNION. Je la met en copie ci-dessous. La première partie seule renvoi 16 ligne. La deuxième partie seule en renvoie 4. La requête UNION devrait en renvoyer 20: elle n'en renvoie que 17!
Si quelqu'un a une petite idée, qu'il soit remercié de m'en faire part!!
Philippe
SELECT Year([OPIM_DATEFINRECACQ]) AS Année, [MBDR_MONTANTRECREEL]*0.804 AS CAHT FROM OPIMMO_OPIM INNER JOIN MBDEPREC_MBDR ON OPIMMO_OPIM.OPIM_ID=MBDEPREC_MBDR.OPIM_ID WHERE (((Year([OPIM_DATEFINRECACQ])) Is Not Null) AND (([MBDR_MONTANTRECREEL]*0.804) Is Not Null) AND ((OPIMMO_OPIM.OPIM_FINRECACQOK)=True)) UNION SELECT Year([OPIM_DATEFINRECACQ]) AS Année, [VLIGN_TTCREEL]*(1-[VTVA_POURC]) AS CAHT FROM OPIMMO_OPIM INNER JOIN ((VEFAFAISTYPE_VTYP INNER JOIN VEFAFAISLIB_VLIB ON VEFAFAISTYPE_VTYP.VTYP_ID = VEFAFAISLIB_VLIB.VTYP_ID) INNER JOIN (VEFAFAISTVA_VTVA INNER JOIN VEFAFAISLIGNE_VLIGN ON VEFAFAISTVA_VTVA.VTVA_ID = VEFAFAISLIGNE_VLIGN.VTVA_ID) ON VEFAFAISLIB_VLIB.VLIB_ID > VEFAFAISLIGNE_VLIGN.VLIB_ID) ON OPIMMO_OPIM.OPIM_ID > VEFAFAISLIGNE_VLIGN.OPIM_ID WHERE (((VEFAFAISTYPE_VTYP.VTYP_TYPE)="RECETTE") AND ((OPIMMO_OPIM.OPIM_FINRECACQOK)=True));
Bonjour,
Dans ce cas pr"cis, publier ton code ne sert pas à grand chose, tu devrais analyser quelles lignes sont retournées par tes 2
requêtes puis quelles lignes manquent quand tu fais une UNION.
Essaie avec UNION ALL SELECT......, par défaut, UNION supprimer les doublons.
--
J-Pierre
------------------------------------------------------
http://www.mpfa.info :
Le site où que j'ai dû payer pour y figurer :-(
------------------------------------------------------
"Philippe Pons" <Philippe.Pons19@wanadoo.fr> a écrit dans le message de news: 44a390e4$0$1030$ba4acef3@news.orange.fr...
Bonjour,
J'ai un petit soucis avec la mise au point d'une requête UNION.
Je la met en copie ci-dessous.
La première partie seule renvoi 16 ligne.
La deuxième partie seule en renvoie 4.
La requête UNION devrait en renvoyer 20: elle n'en renvoie que 17!
Si quelqu'un a une petite idée, qu'il soit remercié de m'en faire part!!
Philippe
SELECT Year([OPIM_DATEFINRECACQ]) AS Année, [MBDR_MONTANTRECREEL]*0.804 AS
CAHT
FROM OPIMMO_OPIM INNER JOIN MBDEPREC_MBDR ON
OPIMMO_OPIM.OPIM_ID=MBDEPREC_MBDR.OPIM_ID
WHERE (((Year([OPIM_DATEFINRECACQ])) Is Not Null) AND
(([MBDR_MONTANTRECREEL]*0.804) Is Not Null) AND
((OPIMMO_OPIM.OPIM_FINRECACQOK)=True))
UNION SELECT Year([OPIM_DATEFINRECACQ]) AS Année,
[VLIGN_TTCREEL]*(1-[VTVA_POURC]) AS CAHT
FROM OPIMMO_OPIM INNER JOIN ((VEFAFAISTYPE_VTYP INNER JOIN VEFAFAISLIB_VLIB
ON VEFAFAISTYPE_VTYP.VTYP_ID = VEFAFAISLIB_VLIB.VTYP_ID) INNER JOIN
(VEFAFAISTVA_VTVA INNER JOIN VEFAFAISLIGNE_VLIGN ON VEFAFAISTVA_VTVA.VTVA_ID
= VEFAFAISLIGNE_VLIGN.VTVA_ID) ON VEFAFAISLIB_VLIB.VLIB_ID > VEFAFAISLIGNE_VLIGN.VLIB_ID) ON OPIMMO_OPIM.OPIM_ID > VEFAFAISLIGNE_VLIGN.OPIM_ID
WHERE (((VEFAFAISTYPE_VTYP.VTYP_TYPE)="RECETTE") AND
((OPIMMO_OPIM.OPIM_FINRECACQOK)=True));
Dans ce cas pr"cis, publier ton code ne sert pas à grand chose, tu devrais analyser quelles lignes sont retournées par tes 2 requêtes puis quelles lignes manquent quand tu fais une UNION. Essaie avec UNION ALL SELECT......, par défaut, UNION supprimer les doublons.
-- J-Pierre ------------------------------------------------------ http://www.mpfa.info : Le site où que j'ai dû payer pour y figurer :-( ------------------------------------------------------
"Philippe Pons" a écrit dans le message de news: 44a390e4$0$1030$
Bonjour,
J'ai un petit soucis avec la mise au point d'une requête UNION. Je la met en copie ci-dessous. La première partie seule renvoi 16 ligne. La deuxième partie seule en renvoie 4. La requête UNION devrait en renvoyer 20: elle n'en renvoie que 17!
Si quelqu'un a une petite idée, qu'il soit remercié de m'en faire part!!
Philippe
SELECT Year([OPIM_DATEFINRECACQ]) AS Année, [MBDR_MONTANTRECREEL]*0.804 AS CAHT FROM OPIMMO_OPIM INNER JOIN MBDEPREC_MBDR ON OPIMMO_OPIM.OPIM_ID=MBDEPREC_MBDR.OPIM_ID WHERE (((Year([OPIM_DATEFINRECACQ])) Is Not Null) AND (([MBDR_MONTANTRECREEL]*0.804) Is Not Null) AND ((OPIMMO_OPIM.OPIM_FINRECACQOK)=True)) UNION SELECT Year([OPIM_DATEFINRECACQ]) AS Année, [VLIGN_TTCREEL]*(1-[VTVA_POURC]) AS CAHT FROM OPIMMO_OPIM INNER JOIN ((VEFAFAISTYPE_VTYP INNER JOIN VEFAFAISLIB_VLIB ON VEFAFAISTYPE_VTYP.VTYP_ID = VEFAFAISLIB_VLIB.VTYP_ID) INNER JOIN (VEFAFAISTVA_VTVA INNER JOIN VEFAFAISLIGNE_VLIGN ON VEFAFAISTVA_VTVA.VTVA_ID = VEFAFAISLIGNE_VLIGN.VTVA_ID) ON VEFAFAISLIB_VLIB.VLIB_ID > VEFAFAISLIGNE_VLIGN.VLIB_ID) ON OPIMMO_OPIM.OPIM_ID > VEFAFAISLIGNE_VLIGN.OPIM_ID WHERE (((VEFAFAISTYPE_VTYP.VTYP_TYPE)="RECETTE") AND ((OPIMMO_OPIM.OPIM_FINRECACQOK)=True));