- Beiträge: 39
- Dank erhalten: 5
SQL-Selektionen
- ASefrin
-
Autor
- Offline
- Administrator
-
Weniger
Mehr
9 Jahre 8 Monate her - 9 Jahre 1 Woche 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:
Dieses SQL-Statement muss wie folgt abgeändert werden:
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
Letzte Änderung: 9 Jahre 1 Woche her von jerhardt. Begründung: Erweiterung um Feldeinschränkung und DISTINCT
Bitte Anmelden oder Registrieren um der Konversation beizutreten.