Ich hasse diesen "unbekannten Fehler" aus den Mircosoftprodukten, der ist einfach nie hilfreich bei der Fehlersuche
Die Klammern stimmten irgendwie nicht, mindestens eine schließende war zuviel und mindestens ein Komma fehlte, also noch ein Versuch:
SQL-Code:
select * from (
SELECT
MaterialNr,
sum(Bestand) as BESTAND,
Bezeichnung,
Aufgebraucht
from (
SELECT
Materialrollen.[Mat-Nr] As MaterialNr,
Materialrollen.[Arb-Breite] / 1000 * Materialrollen.lfm as Bestand,
[Material-Stamm].Bezeichnung As Bezeichnung,
case Materialrollen.DatumAb when null then 'nein' else 'ja' end as Aufgebraucht
FROM Materialrollen
LEFT JOIN [Material-Stamm] ON Materialrollen.[Mat-Nr] = [Material-Stamm].[Mat-Nr]
WHERE [Material-Stamm].[Lieferanten-Nr] = ' + Lieferantennr.Text + '
AND [Material-Stamm].aktuell = -1
AND Materialrollen.[Arb-Breite] > 179
)
group by
MaterialNr,
Bezeichnung,
Aufgebraucht
)
where (Aufgebraucht = 'nein') or (Aufgebraucht = 'ja' and Bestand = 0)
Zitat:
Aber dann! Habe den entsprechenden Materialrollen, die > 179 sind, ein Materialrollen.DatumAb eingetragen und dann wird dieses Material gar nicht mehr in der Tabelle angezeigt. Eigentlich sollte das Material aufgeführt sein mit Bestand = 0 und Aufgebraucht = ja
Dein Ursprungssql hatte da sowas:
AND (Materialrollen.DatumAb is NULL)
. Daraus resultiert:
Zitat:
ein Materialrollen.DatumAb eingetragen und dann wird dieses Material gar nicht mehr in der Tabelle angezeigt
Also entferne die Zeile(n) mit
AND (Materialrollen.DatumAb is NULL)
aus dem
SQL. Dann sind sie im Ergebnis enthalten, was übrigens dann auch das Union All überflüssig macht.