Prinzipieller Ansatz: Bedingung pro Statement / pro Datensatz?

26/05/2008 - 12:36 von Anonymous | Report spam
Hallo NG!

Ich möchte Datensàtze anhand zweier Kriterien entprechend behandeln:
Kriterium 1 steht zu Beginn der Abfrage fest und àndert sich wàhrend
der Ausführung auch nicht, muss aber "einmalig" ermittelt werden.
Kriterium 2 ist jeweils im Datensatz gespeichert.

Wenn Kriterium 1 einen bestimmten Wert zurückliefert, dann muss
Kriterium 2 gar nicht mehr ausgewertet werden. Andernfalls muss
Kriterium 2 für jeden Datensatz ausgewertet werden.

Prinzipiell löst man sowas doch über eine UDF, die dann quasi für
jeden Datensatz ausgewertet wird?
Also im Prinzip:
- wenn Kriterium 1 erfüllt, dann Rückgabe immer 1
- wenn Kriterium 1 nicht erfüllt, dann Rückgabe 0 oder 1 entsprechend
Kriterium 2
Verpackt in einen Sub-Select kann ich ja dann ggf. mit dem Ergebniss
entsprechend weiterarbeiten.

Wie kann man aber innerhalb einer Sicht die Auswertung des ersten
Kriteriums am performantesten einbeziehen? Dieses braucht eben nicht
für jeden Datnsatz ausgewertet werden, sondern nur einmalig.

Ich hoffe ich konnte mich verstàndlich ausdrücken, was ich erreichen
möchte.

Mit freundlichen Grüßen
Daniel Barisch
 

Lesen sie die antworten

#1 Christa Kurschat
26/05/2008 - 13:59 | Warnen spam
Hallo Daniel,

<Daniel Barisch> schrieb im Newsbeitrag
news:
Hallo NG!

Ich möchte Datensàtze anhand zweier Kriterien entprechend behandeln:
Kriterium 1 steht zu Beginn der Abfrage fest und àndert sich wàhrend
der Ausführung auch nicht, muss aber "einmalig" ermittelt werden.
Kriterium 2 ist jeweils im Datensatz gespeichert.

Wenn Kriterium 1 einen bestimmten Wert zurückliefert, dann muss
Kriterium 2 gar nicht mehr ausgewertet werden. Andernfalls muss
Kriterium 2 für jeden Datensatz ausgewertet werden.

Prinzipiell löst man sowas doch über eine UDF, die dann quasi für
jeden Datensatz ausgewertet wird?
Also im Prinzip:
- wenn Kriterium 1 erfüllt, dann Rückgabe immer 1
- wenn Kriterium 1 nicht erfüllt, dann Rückgabe 0 oder 1 entsprechend
Kriterium 2
Verpackt in einen Sub-Select kann ich ja dann ggf. mit dem Ergebniss
entsprechend weiterarbeiten.

Wie kann man aber innerhalb einer Sicht die Auswertung des ersten
Kriteriums am performantesten einbeziehen? Dieses braucht eben nicht
für jeden Datnsatz ausgewertet werden, sondern nur einmalig.



Muß es denn eine Sicht sein?
Könnte es nicht auch in einer Prozedur erledigt werden?

Dann würde ich eine Variable definieren, die Kriterium 1 auswertet.
In der Abfrage kannst Du dann ein case-Konstrukt bauen, daß den Rest
erledigt.


Ich hoffe ich konnte mich verstàndlich ausdrücken, was ich erreichen
möchte.




Ist schon etwas konfus ;-)
Könntest Du mal konkrete Beispiele anführen, die nicht so abstrakt sind?

Gruß
Christa
Access-FAQ: http://www.donkarl.com
SQL-Server-FAQ: www.sqlfaq.de
InsideSql: www.insidesql.org

Ähnliche fragen