Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Problème de liaison dans une requete SQL

1 réponse
Avatar
Michel
Bonjour =E0 tous,

J'ai un probl=E8me de r=E9p=E9tition d'enregistrement dans une=20
requete.

j'ai une table reprenant des mouvements et une table=20
signal=E9tique,
je fais une liaison des mouvement vers le signal=E9tique=20
pour retrouver la description.
La zone EtudeChantier.NumChantier n'est pas une cl=E9!
lorsque j'ai plusieurs ligne dans la table EtudeChantier=20
il me duplicie les mouvements.....

HELP HELP.

Merci d'avance =E0 tous.

SELECT MVT.MVTYPE AS Expr1, MVT.MVDATE AS Expr2,
MVT.MVNUMCHA, MVT.MVREGROUP, MVT.MVNATURE,=20
MVT.MVENGIN, MVT.MVQTE,=20
MVT.MVPOINTQTE, MVT.MVTAUX, MVT.MVTMONTANT,
ENGIN.ENCDECHA, EtudeChantier.RESPChant
FROM MVT INNER JOIN
ENGIN ON MVT.MVENGIN =3D ENGIN.ENNUM INNER JOIN
EtudeChantier ON MVT.MVNUMCHA =3D=20
EtudeChantier.NumChantier
WHERE (MVT.MVDATE >=3D 20040301) AND (MVT.MVTYPE=3D 'P')=20
AND (MVT.MVDATE <=3D 20040331)

1 réponse

Avatar
Fred BROUARD
et avec DISTINCT ???

PS : utilise le between c'est plus optimisé pour tes fourchettes de date !

SELECT DISTINCT
MVT.MVTYPE AS Expr1, MVT.MVDATE AS Expr2,
MVT.MVNUMCHA, MVT.MVREGROUP, MVT.MVNATURE,
MVT.MVENGIN, MVT.MVQTE,
MVT.MVPOINTQTE, MVT.MVTAUX, MVT.MVTMONTANT,
ENGIN.ENCDECHA, EtudeChantier.RESPChant
FROM MVT
INNER JOIN ENGIN
ON MVT.MVENGIN = ENGIN.ENNUM
INNER JOIN EtudeChantier EC
ON MVT.MVNUMCHA = EC.NumChantier
WHERE MVT.MVDATE BETWEEN CAST('20040301' AS DATETIME)
AND CAST('20040331) AS DATETIME)
AND MVT.MVTYPE= 'P'

A +



--
Frédéric BROUARD, MVP Microsoft SQL Server. Langage SQL / Delphi / web
Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html
Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com
****************** mailto: ******************

Michel a écrit:
Bonjour à tous,

J'ai un problème de répétition d'enregistrement dans une
requete.

j'ai une table reprenant des mouvements et une table
signalétique,
je fais une liaison des mouvement vers le signalétique
pour retrouver la description.
La zone EtudeChantier.NumChantier n'est pas une clé!
lorsque j'ai plusieurs ligne dans la table EtudeChantier
il me duplicie les mouvements.....

HELP HELP.

Merci d'avance à tous.

SELECT MVT.MVTYPE AS Expr1, MVT.MVDATE AS Expr2,
MVT.MVNUMCHA, MVT.MVREGROUP, MVT.MVNATURE,
MVT.MVENGIN, MVT.MVQTE,
MVT.MVPOINTQTE, MVT.MVTAUX, MVT.MVTMONTANT,
ENGIN.ENCDECHA, EtudeChantier.RESPChant
FROM MVT INNER JOIN
ENGIN ON MVT.MVENGIN = ENGIN.ENNUM INNER JOIN
EtudeChantier ON MVT.MVNUMCHA =
EtudeChantier.NumChantier
WHERE (MVT.MVDATE >= 20040301) AND (MVT.MVTYPE= 'P')
AND (MVT.MVDATE <= 20040331)