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:
Code:
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:
Code:
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