Einzelnen Beitrag anzeigen

Delphi.Narium

Registriert seit: 27. Nov 2017
2.418 Beiträge
 
Delphi 7 Professional
 
#26

AW: ADOQuery berechnetes Feld

  Alt 7. Jun 2019, 14:58
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 'neinelse 'jaend 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 = 'jaand 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.

Geändert von Delphi.Narium ( 7. Jun 2019 um 15:11 Uhr) Grund: Klammer zuviel entfernt, danke Jobo für's drüberschauen und finden.
  Mit Zitat antworten Zitat