ACC_Entwickler
Aktiver Benutzer
- Beiträge
- 28
Guten Tag zusammen,
ich habe folgendes Problem.
Ich habe eine View erstellt, die mir diverse Daten anzeigen soll! siehe Beispiel im Anhang. Ich habe aber das Problem, dass mir die View nicht alle Daten ausgibt, sondern nur die, die genau eine WQ haben auf der Sachen gebucht sind. Ich habe glaube ich ein Problem mit meinen WHERE Bedingungen, kann aber nicht ausmachen wo es liegt.
Das ist mein Code:
SELECT x.WO,
x.Item,
x.[P/N],
x.[S/N],
x.[Part Beschreibung],
x.[Einzel EK],
x.Anzahl,
x.[Einzel VK],
x.[WQ] AS WQ,
x.[Gesamt VK],
x.Fertigstellung,
x.Split
FROM(
SELECT RIGHT(Format(CAST(A.counter AS int), '##-####'), 7) AS WO,
B.Nr AS Item,
W.[P/N],
W.[S/N],
Im.Artikelname AS [Part Beschreibung],
W.[EK-Preis] AS [Einzel EK],
W.[Anzahl Ausgänge] AS Anzahl,
W.[VK] AS [Einzel VK],
IIF(B.Memo LIKE '%WQ%',Format(CAST(SUBSTRING(B.[Memo], CHARINDEX('WQ20', B.[Memo]) + 4, 7) AS int), '##-####'), NULL ) AS WQ,
W.[VK] * W.[Anzahl Ausgänge] AS [Gesamt VK],
W.Nr AS Split,
B.[F-Datum] AS Fertigstellung
FROM SOdata.dbo.Aufträge AS A LEFT OUTER JOIN
SOdata.dbo.Beanstandungen AS B ON A.Auftragsnummer = B.Auftragsnummer LEFT OUTER JOIN
SOdata.dbo.Invmat AS Im ON A.Auftragsnummer = Im.Auftragsnummer LEFT OUTER JOIN
SOdata.dbo.Warenbuchung AS W ON A.Auftragsnummer = W.Auftragsnummer
WHERE (A.OrderType = 'Auftrag') AND (CHARINDEX('deleted', A.Auftragnr_neu) = 0 OR
CHARINDEX('deleted', A.Auftragnr_neu) IS NULL) AND
(CHARINDEX('Auftrag', A.OrderType) = 1) AND
(A.counter IS NOT NULL) AND
B.Nr = W.Item AND
Im.Item = W.Item AND
B.Nr = Im.Item AND
Im.[P/N] = W.[P/N]
)x
WHERE WO = '22-7001'
GROUP BY x.WO, x.Item, x.[P/N], x.[S/N], x.[Part Beschreibung], x.[Einzel EK], x.[Anzahl], x.[Einzel VK], x.[Gesamt VK], x.Fertigstellung, x.Split, x.WQ
Für die WO 22-7001 ist die Ausgabe korrekt! Allerdings für die WO 22-5127 nicht, dort wird mir gar nichts ausgegeben, obwohl es eine Menge Daten gibt. Der einzige große Unterschied ist eigentlich, dass die WO 22-5127 mehrere WQ's hat, die WO 22-7001 nur eine WQ auf der auch Parts gebucht sind... Deshalb glaube ich dass es irgendwo an der Stelle zu dem Fehler kommt.
Im Bild WO 22-5127 sieht man wie die WQ eingetragen sein kann und warum ich diese im Format verändern muss. Glaube aber nicht, dass es hier zu einem Fehler kommt, aber man weiß ja nie... Ich habe allerdings keine Ahnung wieso ich an dieser Stelle keine Werte angezeigt bekomme, für die entsprechende WO.
Falls mir jemand helfen kann und dafür mehr Daten braucht bitte ich um Rückmeldung. Ich hoffe das Problem ist deutlich genug beschrieben.
Danke im Vorraus!
LG Philipp
ich habe folgendes Problem.
Ich habe eine View erstellt, die mir diverse Daten anzeigen soll! siehe Beispiel im Anhang. Ich habe aber das Problem, dass mir die View nicht alle Daten ausgibt, sondern nur die, die genau eine WQ haben auf der Sachen gebucht sind. Ich habe glaube ich ein Problem mit meinen WHERE Bedingungen, kann aber nicht ausmachen wo es liegt.
Das ist mein Code:
SELECT x.WO,
x.Item,
x.[P/N],
x.[S/N],
x.[Part Beschreibung],
x.[Einzel EK],
x.Anzahl,
x.[Einzel VK],
x.[WQ] AS WQ,
x.[Gesamt VK],
x.Fertigstellung,
x.Split
FROM(
SELECT RIGHT(Format(CAST(A.counter AS int), '##-####'), 7) AS WO,
B.Nr AS Item,
W.[P/N],
W.[S/N],
Im.Artikelname AS [Part Beschreibung],
W.[EK-Preis] AS [Einzel EK],
W.[Anzahl Ausgänge] AS Anzahl,
W.[VK] AS [Einzel VK],
IIF(B.Memo LIKE '%WQ%',Format(CAST(SUBSTRING(B.[Memo], CHARINDEX('WQ20', B.[Memo]) + 4, 7) AS int), '##-####'), NULL ) AS WQ,
W.[VK] * W.[Anzahl Ausgänge] AS [Gesamt VK],
W.Nr AS Split,
B.[F-Datum] AS Fertigstellung
FROM SOdata.dbo.Aufträge AS A LEFT OUTER JOIN
SOdata.dbo.Beanstandungen AS B ON A.Auftragsnummer = B.Auftragsnummer LEFT OUTER JOIN
SOdata.dbo.Invmat AS Im ON A.Auftragsnummer = Im.Auftragsnummer LEFT OUTER JOIN
SOdata.dbo.Warenbuchung AS W ON A.Auftragsnummer = W.Auftragsnummer
WHERE (A.OrderType = 'Auftrag') AND (CHARINDEX('deleted', A.Auftragnr_neu) = 0 OR
CHARINDEX('deleted', A.Auftragnr_neu) IS NULL) AND
(CHARINDEX('Auftrag', A.OrderType) = 1) AND
(A.counter IS NOT NULL) AND
B.Nr = W.Item AND
Im.Item = W.Item AND
B.Nr = Im.Item AND
Im.[P/N] = W.[P/N]
)x
WHERE WO = '22-7001'
GROUP BY x.WO, x.Item, x.[P/N], x.[S/N], x.[Part Beschreibung], x.[Einzel EK], x.[Anzahl], x.[Einzel VK], x.[Gesamt VK], x.Fertigstellung, x.Split, x.WQ
Für die WO 22-7001 ist die Ausgabe korrekt! Allerdings für die WO 22-5127 nicht, dort wird mir gar nichts ausgegeben, obwohl es eine Menge Daten gibt. Der einzige große Unterschied ist eigentlich, dass die WO 22-5127 mehrere WQ's hat, die WO 22-7001 nur eine WQ auf der auch Parts gebucht sind... Deshalb glaube ich dass es irgendwo an der Stelle zu dem Fehler kommt.
Im Bild WO 22-5127 sieht man wie die WQ eingetragen sein kann und warum ich diese im Format verändern muss. Glaube aber nicht, dass es hier zu einem Fehler kommt, aber man weiß ja nie... Ich habe allerdings keine Ahnung wieso ich an dieser Stelle keine Werte angezeigt bekomme, für die entsprechende WO.
Falls mir jemand helfen kann und dafür mehr Daten braucht bitte ich um Rückmeldung. Ich hoffe das Problem ist deutlich genug beschrieben.
Danke im Vorraus!
LG Philipp