Einzelnen Beitrag anzeigen

Pro_RJ

Registriert seit: 16. Apr 2008
146 Beiträge
 
#6

AW: IIF In Joinstatement

  Alt 19. Nov 2010, 10:09
Es geht darum, ich habe eine View die eine SP aufruft die Entweder Daten neu berechnet oder aus einer Gespeicherten liste zulinkt.
die Sp gibt mir 12 Feldinformationen wieder zurück.
da ich in einer View eine SP nur per (Select XXX from YYY()) aufrufen kann wurde ich das gerne abkürzen.
bsp:


SQL-Code:
Create View Artikel
Select ArtikelNr,
Bez,
(Select LagerBestand from SP(A.PIX)),
(Select Lagerwert from SP(A.PIX)),
(Select Bestellt from SP(A.PIX)),
(Select Bestelltwert from SP(A.PIX)),
.....
from Artikel
in der SP wird entschieden,
1. Wenn der Artikel Bearbeitet wurde -->
JA --> Dann Lagerwerte neu Berechnen
Nein --> sonst letzte gespeicherten Lagerwerte anzeigen (hiert wird eine weitere Tabelle gelesen)

und jetzt wollte ich die SP so umbauen, dann wenn nur die letzten werte geladen werden sollen dann per

SQL-Code:
Create View Artikel
Select ArtikelNr,
Bez,
iif(LetzteDatenanzeigen = 1, L.Lagerbestand,(Select LagerBestand from SP(A.PIX)))
iif(LetzteDatenanzeigen = 1, L.LagerWert,(Select LagerBestand from SP(A.PIX)))
iif(LetzteDatenanzeigen = 1, L.Bestellt,(Select LagerBestand from SP(A.PIX)))
iif(LetzteDatenanzeigen = 1, L.Bestellwert,(Select LagerBestand from SP(A.PIX)))
.....
from Artikel
iif(LetzteDatenanzeigen = 1, Left outer join Lageranzeige))
Über dieses Konstrukt würde ich statt 12 mal 2 Lesevorgänge nur einen lesevorgang benötigen
--> Das Ganze auf 400.000 - 500.000 Daten gibt das schon einiges anzeitersparniss

Geändert von mkinzler (19. Nov 2010 um 12:08 Uhr) Grund: Delphi-Tags durch SQL-Tags ersetzt
  Mit Zitat antworten Zitat