SQL-Selektionen

Mehr
5 Jahre 6 Monate her - 4 Jahre 10 Monate her #1313 von ASefrin
SQL-Selektionen wurde erstellt von ASefrin
An vielen Stellen in Orgasoft.NET können mit Selektionen Daten eingegrenzt oder selektiert werden (ReportingCenter, Bestellautomatik, etc.).

Man kann einfach nur Parameter auswählen und diese einschränken und/oder eine SQL-Abfrage hinterlegen. Wenn in einer Selektion ein SQL-Statement hinterlegt wird, dann müssen allerdings unbedingt einige Regeln eingehalten werden:

1. Es muss darauf geachtet werden, dass man im SELECT-Teil keine Aliase verwendet.
2. Der vorgeschlagene Tabellenname im SELECT darf nicht geändert werden, bei Artikel-Selektionen steht also immer HandelsArtikel im SELECT
3. Es müssen alle Felder dieser Tabelle selektiert werden ("*"). Etwaige Einschränkungen bei den Feldern nimmt Orgasoft.NET selbständig vor.
4. Es darf kein DISTINCT, TOP x oder etwas ähnliches im SELECT verwendet werden. Solche Einschränkungen müssen ggf. im hinteren Teil der Abfrage über Sub-Selects vorgenommen werden.

Beispiel:
SELECT DISTINCT                       -- unzulässig: DISTINCT
       HA.ArtikelNr                   -- unzulässig: Einschränkung der Felder!
FROM HandelsArtikel HA                -- unzulässig: Alias!
INNER JOIN
      ArtikelFilialBestand AFB 
      ON HA.ArtikelNr = AFB.ArtikelNr AND
      HA.Einheit = AFB.Einheit
WHERE AFB.Filialnummer = 1 AND
AFB.Bestand > 0

Dieses SQL-Statement muss wie folgt abgeändert werden:
SELECT HandelsArtikel.*
FROM HandelsArtikel 
INNER JOIN
      ArtikelFilialBestand AFB 
      ON HandelsArtikel.ArtikelNr = AFB.ArtikelNr AND
      HandelsArtikel.Einheit = AFB.Einheit
WHERE AFB.Filialnummer = 1 AND
AFB.Bestand > 0
Letzte Änderung: 4 Jahre 10 Monate her von jerhardt. Begründung: Erweiterung um Feldeinschränkung und DISTINCT

Bitte Anmelden oder Registrieren um der Konversation beizutreten.