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

SQLServer 2005: De doublons dans ma requête

4 réponses
Avatar
EmanuelL
Bonjour à Tous,

J'ai bute sur la requête ci-dessous, elle me sort de doublons.

Merci d'avance de votre aide. :'(


SELECT FP.Fak_Nr,FP.Projekt_Nr, FP.Postyp_SCNR,FP.Code_Nr,
CASE WHEN ((FP.Code_Nr BETWEEN 1000 AND 4500)
AND (FP.Postyp_SCNR = 2
OR FP.Postyp_SCNR = 6
OR FP.Postyp_SCNR = 10
OR FP.Postyp_SCNR = 11))
OR (FP.Code_Nr = 9 AND FP.Postyp_SCNR = 9)
OR (FP.Code_Nr = 200 AND FP.Postyp_SCNR = 3 AND JL.Spesen_Nr =
9999)
THEN SUM(FP.Betragnetto)
ELSE 0
END AS Hono,

CASE WHEN (FP.Code_Nr BETWEEN 1 AND 3 AND FP.Postyp_SCNR = 3)
OR (FP.Code_Nr = 200 AND FP.Postyp_SCNR = 3
AND (JL.Spesen_Nr BETWEEN 1 AND 3))
THEN SUM(FP.Betragnetto)
ELSE 0
END AS Frais
FROM Fakpos AS FP
JOIN FakKopf AS FK
ON FP.Fak_Nr = FK.Fak_Nr
AND FK.TotalNetto > 0
AND FK.DebDatum <> ''
JOIN Journal AS JL
ON FP.Fak_Nr = JL.Fak_Nr
GROUP BY
FP.Fak_Nr,FP.Projekt_Nr,FP.Code_Nr,FP.Postyp_SCNR,JL.Spesen_Nr
ORDER BY FP.Fak_Nr,FP.Projekt_Nr

Resultat:
---------
Fak_Nr Projekt_Nr Postyp_SCNR Code_Nr Hono Frais
100000006 1000180 9 9 227.50 0.00
100000006 1000180 9 9 227.50 0.00
100000006 1000180 3 200 0.00 0.00
100000006 1000180 3 200 3'186.25 0.00
100000006 1000180 2 4500 36.25 0.00
100000006 1000180 2 4500 36.25 0.00
100000008 1000156 9 9 423.75 0.00
100000008 1000156 9 9 423.75 0.00
100000008 1000156 3 200 0.00 0.00
100000008 1000156 3 200 4'221.25 0.00
100000008 1000156 2 2000 55.00 0.00
100000008 1000156 2 2000 55.00 0.00

Au lieu de:
-----------
Fak_Nr Projekt_Nr Postyp_SCNR Code_Nr Hono Frais
100000006 1000180 9 9 227.50 0.00
100000006 1000180 3 200 3'186.25 0.00
100000006 1000180 2 4500 36.25 0.00
100000008 1000156 9 9 423.75 0.00
100000008 1000156 3 200 4'221.25 0.00
100000008 1000156 2 2000 55.00 0.00

--

*!* -----------------------------------
EmanuelL
Membre d'AtoutFox
www.atoutfox.org

4 réponses

Avatar
bruno reiter
ajoutes distinct :

SELECT DISTINCT FP.Fak_Nr,FP.Projekt_Nr, FP.Postyp_SCNR,FP.Code_Nr, .......

BR

"EmanuelL" wrote in message
news:
Bonjour à Tous,

J'ai bute sur la requête ci-dessous, elle me sort de doublons.

Merci d'avance de votre aide. :'(


SELECT FP.Fak_Nr,FP.Projekt_Nr, FP.Postyp_SCNR,FP.Code_Nr,
CASE WHEN ((FP.Code_Nr BETWEEN 1000 AND 4500)
AND (FP.Postyp_SCNR = 2
OR FP.Postyp_SCNR = 6
OR FP.Postyp_SCNR = 10
OR FP.Postyp_SCNR = 11))
OR (FP.Code_Nr = 9 AND FP.Postyp_SCNR = 9)
OR (FP.Code_Nr = 200 AND FP.Postyp_SCNR = 3 AND JL.Spesen_Nr = 9999)
THEN SUM(FP.Betragnetto)
ELSE 0
END AS Hono,

CASE WHEN (FP.Code_Nr BETWEEN 1 AND 3 AND FP.Postyp_SCNR = 3)
OR (FP.Code_Nr = 200 AND FP.Postyp_SCNR = 3
AND (JL.Spesen_Nr BETWEEN 1 AND 3))
THEN SUM(FP.Betragnetto)
ELSE 0
END AS Frais
FROM Fakpos AS FP
JOIN FakKopf AS FK
ON FP.Fak_Nr = FK.Fak_Nr
AND FK.TotalNetto > 0
AND FK.DebDatum <> ''
JOIN Journal AS JL
ON FP.Fak_Nr = JL.Fak_Nr
GROUP BY FP.Fak_Nr,FP.Projekt_Nr,FP.Code_Nr,FP.Postyp_SCNR,JL.Spesen_Nr
ORDER BY FP.Fak_Nr,FP.Projekt_Nr

Resultat:
---------
Fak_Nr Projekt_Nr Postyp_SCNR Code_Nr Hono Frais
100000006 1000180 9 9 227.50 0.00
100000006 1000180 9 9 227.50 0.00
100000006 1000180 3 200 0.00 0.00
100000006 1000180 3 200 3'186.25 0.00
100000006 1000180 2 4500 36.25 0.00
100000006 1000180 2 4500 36.25 0.00
100000008 1000156 9 9 423.75 0.00
100000008 1000156 9 9 423.75 0.00
100000008 1000156 3 200 0.00 0.00
100000008 1000156 3 200 4'221.25 0.00
100000008 1000156 2 2000 55.00 0.00
100000008 1000156 2 2000 55.00 0.00

Au lieu de:
-----------
Fak_Nr Projekt_Nr Postyp_SCNR Code_Nr Hono Frais
100000006 1000180 9 9 227.50 0.00
100000006 1000180 3 200 3'186.25 0.00
100000006 1000180 2 4500 36.25 0.00
100000008 1000156 9 9 423.75 0.00
100000008 1000156 3 200 4'221.25 0.00
100000008 1000156 2 2000 55.00 0.00

--

*!* -----------------------------------
EmanuelL
Membre d'AtoutFox
www.atoutfox.org




Avatar
EmanuelL
Merci Bruno de ta réponse, le problème est qu'il n'y a pas ces doublons
dans mes tables, je pense que ma requête qui est mal formulée.

Quelque'il a une idée? ;-)

bruno reiter a pensé très fort :
ajoutes distinct :

SELECT DISTINCT FP.Fak_Nr,FP.Projekt_Nr, FP.Postyp_SCNR,FP.Code_Nr, .......

BR

"EmanuelL" wrote in message
news:
Bonjour à Tous,

J'ai bute sur la requête ci-dessous, elle me sort de doublons.

Merci d'avance de votre aide. :'(


SELECT FP.Fak_Nr,FP.Projekt_Nr, FP.Postyp_SCNR,FP.Code_Nr,
CASE WHEN ((FP.Code_Nr BETWEEN 1000 AND 4500)
AND (FP.Postyp_SCNR = 2
OR FP.Postyp_SCNR = 6
OR FP.Postyp_SCNR = 10
OR FP.Postyp_SCNR = 11))
OR (FP.Code_Nr = 9 AND FP.Postyp_SCNR = 9)
OR (FP.Code_Nr = 200 AND FP.Postyp_SCNR = 3 AND JL.Spesen_Nr = 9999)
THEN SUM(FP.Betragnetto)
ELSE 0
END AS Hono,

CASE WHEN (FP.Code_Nr BETWEEN 1 AND 3 AND FP.Postyp_SCNR = 3)
OR (FP.Code_Nr = 200 AND FP.Postyp_SCNR = 3
AND (JL.Spesen_Nr BETWEEN 1 AND 3))
THEN SUM(FP.Betragnetto)
ELSE 0
END AS Frais
FROM Fakpos AS FP
JOIN FakKopf AS FK
ON FP.Fak_Nr = FK.Fak_Nr
AND FK.TotalNetto > 0
AND FK.DebDatum <> ''
JOIN Journal AS JL
ON FP.Fak_Nr = JL.Fak_Nr
GROUP BY FP.Fak_Nr,FP.Projekt_Nr,FP.Code_Nr,FP.Postyp_SCNR,JL.Spesen_Nr
ORDER BY FP.Fak_Nr,FP.Projekt_Nr

Resultat:
---------
Fak_Nr Projekt_Nr Postyp_SCNR Code_Nr Hono Frais
100000006 1000180 9 9 227.50 0.00
100000006 1000180 9 9 227.50 0.00
100000006 1000180 3 200 0.00 0.00
100000006 1000180 3 200 3'186.25 0.00
100000006 1000180 2 4500 36.25 0.00
100000006 1000180 2 4500 36.25 0.00
100000008 1000156 9 9 423.75 0.00
100000008 1000156 9 9 423.75 0.00
100000008 1000156 3 200 0.00 0.00
100000008 1000156 3 200 4'221.25 0.00
100000008 1000156 2 2000 55.00 0.00
100000008 1000156 2 2000 55.00 0.00

Au lieu de:
-----------
Fak_Nr Projekt_Nr Postyp_SCNR Code_Nr Hono Frais
100000006 1000180 9 9 227.50 0.00
100000006 1000180 3 200 3'186.25 0.00
100000006 1000180 2 4500 36.25 0.00
100000008 1000156 9 9 423.75 0.00
100000008 1000156 3 200 4'221.25 0.00
100000008 1000156 2 2000 55.00 0.00

--

*!* -----------------------------------
EmanuelL
Membre d'AtoutFox
www.atoutfox.org







--

*!* -----------------------------------
EmanuelL
Membre d'AtoutFox
www.atoutfox.org
Avatar
bruno reiter
il n'y a pas de doublons dans les tales, il peut y en avoir dans le jeu de
résultats en fonction des jointures et colonnes choisies, c'est facile à
vérifier avec tes données.

BR

"EmanuelL" wrote in message
news:
Merci Bruno de ta réponse, le problème est qu'il n'y a pas ces doublons
dans mes tables, je pense que ma requête qui est mal formulée.

Quelque'il a une idée? ;-)

bruno reiter a pensé très fort :
ajoutes distinct :

SELECT DISTINCT FP.Fak_Nr,FP.Projekt_Nr, FP.Postyp_SCNR,FP.Code_Nr,
.......

BR

"EmanuelL" wrote in message
news:
Bonjour à Tous,

J'ai bute sur la requête ci-dessous, elle me sort de doublons.

Merci d'avance de votre aide. :'(


SELECT FP.Fak_Nr,FP.Projekt_Nr, FP.Postyp_SCNR,FP.Code_Nr,
CASE WHEN ((FP.Code_Nr BETWEEN 1000 AND 4500)
AND (FP.Postyp_SCNR = 2
OR FP.Postyp_SCNR = 6
OR FP.Postyp_SCNR = 10
OR FP.Postyp_SCNR = 11))
OR (FP.Code_Nr = 9 AND FP.Postyp_SCNR = 9)
OR (FP.Code_Nr = 200 AND FP.Postyp_SCNR = 3 AND JL.Spesen_Nr = 9999)
THEN SUM(FP.Betragnetto)
ELSE 0
END AS Hono,

CASE WHEN (FP.Code_Nr BETWEEN 1 AND 3 AND FP.Postyp_SCNR = 3)
OR (FP.Code_Nr = 200 AND FP.Postyp_SCNR = 3
AND (JL.Spesen_Nr BETWEEN 1 AND 3))
THEN SUM(FP.Betragnetto)
ELSE 0
END AS Frais
FROM Fakpos AS FP
JOIN FakKopf AS FK
ON FP.Fak_Nr = FK.Fak_Nr
AND FK.TotalNetto > 0
AND FK.DebDatum <> ''
JOIN Journal AS JL
ON FP.Fak_Nr = JL.Fak_Nr
GROUP BY FP.Fak_Nr,FP.Projekt_Nr,FP.Code_Nr,FP.Postyp_SCNR,JL.Spesen_Nr
ORDER BY FP.Fak_Nr,FP.Projekt_Nr

Resultat:
---------
Fak_Nr Projekt_Nr Postyp_SCNR Code_Nr Hono Frais
100000006 1000180 9 9 227.50 0.00
100000006 1000180 9 9 227.50 0.00
100000006 1000180 3 200 0.00 0.00
100000006 1000180 3 200 3'186.25 0.00
100000006 1000180 2 4500 36.25 0.00
100000006 1000180 2 4500 36.25 0.00
100000008 1000156 9 9 423.75 0.00
100000008 1000156 9 9 423.75 0.00
100000008 1000156 3 200 0.00 0.00
100000008 1000156 3 200 4'221.25 0.00
100000008 1000156 2 2000 55.00 0.00
100000008 1000156 2 2000 55.00 0.00

Au lieu de:
-----------
Fak_Nr Projekt_Nr Postyp_SCNR Code_Nr Hono Frais
100000006 1000180 9 9 227.50 0.00
100000006 1000180 3 200 3'186.25 0.00
100000006 1000180 2 4500 36.25 0.00
100000008 1000156 9 9 423.75 0.00
100000008 1000156 3 200 4'221.25 0.00
100000008 1000156 2 2000 55.00 0.00

--

*!* -----------------------------------
EmanuelL
Membre d'AtoutFox
www.atoutfox.org







--

*!* -----------------------------------
EmanuelL
Membre d'AtoutFox
www.atoutfox.org




Avatar
EmanuelL
Merci tout de même de ton aide.
Je réfléchirais différement our avoir une solution optimale.

Bon WE. ;-)

Il se trouve que bruno reiter a formulé :
il n'y a pas de doublons dans les tales, il peut y en avoir dans le jeu de
résultats en fonction des jointures et colonnes choisies, c'est facile à
vérifier avec tes données.

BR

"EmanuelL" wrote in message
news:
Merci Bruno de ta réponse, le problème est qu'il n'y a pas ces doublons
dans mes tables, je pense que ma requête qui est mal formulée.

Quelque'il a une idée? ;-)

bruno reiter a pensé très fort :
ajoutes distinct :

SELECT DISTINCT FP.Fak_Nr,FP.Projekt_Nr, FP.Postyp_SCNR,FP.Code_Nr,
.......

BR

"EmanuelL" wrote in message
news:
Bonjour à Tous,

J'ai bute sur la requête ci-dessous, elle me sort de doublons.

Merci d'avance de votre aide. :'(


SELECT FP.Fak_Nr,FP.Projekt_Nr, FP.Postyp_SCNR,FP.Code_Nr,
CASE WHEN ((FP.Code_Nr BETWEEN 1000 AND 4500)
AND (FP.Postyp_SCNR = 2
OR FP.Postyp_SCNR = 6
OR FP.Postyp_SCNR = 10
OR FP.Postyp_SCNR = 11))
OR (FP.Code_Nr = 9 AND FP.Postyp_SCNR = 9)
OR (FP.Code_Nr = 200 AND FP.Postyp_SCNR = 3 AND JL.Spesen_Nr = 9999)
THEN SUM(FP.Betragnetto)
ELSE 0
END AS Hono,

CASE WHEN (FP.Code_Nr BETWEEN 1 AND 3 AND FP.Postyp_SCNR = 3)
OR (FP.Code_Nr = 200 AND FP.Postyp_SCNR = 3
AND (JL.Spesen_Nr BETWEEN 1 AND 3))
THEN SUM(FP.Betragnetto)
ELSE 0
END AS Frais
FROM Fakpos AS FP
JOIN FakKopf AS FK
ON FP.Fak_Nr = FK.Fak_Nr
AND FK.TotalNetto > 0
AND FK.DebDatum <> ''
JOIN Journal AS JL
ON FP.Fak_Nr = JL.Fak_Nr
GROUP BY FP.Fak_Nr,FP.Projekt_Nr,FP.Code_Nr,FP.Postyp_SCNR,JL.Spesen_Nr
ORDER BY FP.Fak_Nr,FP.Projekt_Nr

Resultat:
---------
Fak_Nr Projekt_Nr Postyp_SCNR Code_Nr Hono Frais
100000006 1000180 9 9 227.50 0.00
100000006 1000180 9 9 227.50 0.00
100000006 1000180 3 200 0.00 0.00
100000006 1000180 3 200 3'186.25 0.00
100000006 1000180 2 4500 36.25 0.00
100000006 1000180 2 4500 36.25 0.00
100000008 1000156 9 9 423.75 0.00
100000008 1000156 9 9 423.75 0.00
100000008 1000156 3 200 0.00 0.00
100000008 1000156 3 200 4'221.25 0.00
100000008 1000156 2 2000 55.00 0.00
100000008 1000156 2 2000 55.00 0.00

Au lieu de:
-----------
Fak_Nr Projekt_Nr Postyp_SCNR Code_Nr Hono Frais
100000006 1000180 9 9 227.50 0.00
100000006 1000180 3 200 3'186.25 0.00
100000006 1000180 2 4500 36.25 0.00
100000008 1000156 9 9 423.75 0.00
100000008 1000156 3 200 4'221.25 0.00
100000008 1000156 2 2000 55.00 0.00

--

*!* -----------------------------------
EmanuelL
Membre d'AtoutFox
www.atoutfox.org







--

*!* -----------------------------------
EmanuelL
Membre d'AtoutFox
www.atoutfox.org







--

*!* -----------------------------------
EmanuelL
Membre d'AtoutFox
www.atoutfox.org