95718
Goto Top

SQL Abfragen mit Priorität versehen

Hallo Leute

Ich habe folgendes Problem...ich frage aus einer Datenbank mehrere Abfragen ab. Am Ende verbinde ich dann alle Abfragen mit einem Union.
Problem ist das ich am Ende dann viele Produktid´s mehrfach habe. Gibt es eine Möglichkeit in einer Endabfrage zu "priorisieren" so dass bestimmte Ergebnisse einer Abfrage rausfallen, weil sie bei der voherigen schon "rausgefischt" wurden

Bsp:

Ergebnis Abfrage 1 - bestimmte Produktkriterien

Produktid Name Preis

2525142 Produkt 1 25,10
2514786 Produkt 3 36,00

Ergebnis Abfrage 2 - bestimmte Produktkriterien

Produktid Name Kategorie

2525142 Produkt 1 25,10
2569584 Produkt 5 55,00
...

Im Ergebnis des Unions Abfrage 1 und 2 taucht Produkt 1 dann 2mal auf.....kann man vielleicht eine Priorität setzen, das Abfrage Nummer 1 quasi Vorrang hat

Hoffe ihr versteht mein Problem
Würde mich über ne Antwort freuen!

Content-Key: 181306

Url: https://administrator.de/contentid/181306

Printed on: April 25, 2024 at 12:04 o'clock

Member: SlainteMhath
SlainteMhath Mar 01, 2012 at 14:33:19 (UTC)
Goto Top
Moin,

mach doch über das Ergebnis deiner UNIONs ein SELECT mit entsprechenden GROUP BYs,

SELECT MAX(Name), MAX(Kategorie), MAX.....  FROM <UNION-KONSTRUKT> GROUP BY ProduktID

Ggfs. muss du das in Access das UNION-Konstrukt in eine separate Abfrage auslagern.

lg,
Slainte
Mitglied: 32067
32067 Mar 01, 2012 at 14:48:25 (UTC)
Goto Top
Hallo,

mit welcher DB bist du da unterwegs?

Eigentlich nimmt UNION nämlich per default doppelte Zeilen aus dem Ergebnis raus ( http://www.w3schools.com/sql/sql_union.asp ), auch bei Access ( http://msdn.microsoft.com/en-us/library/bb208962%28v=office.12%29.aspx ).

MfG
Mitglied: 95718
95718 Mar 02, 2012 at 06:19:59 (UTC)
Goto Top
Ich benutze eine Access-DB

Glaube habe oben ein doofes Beispiel benutzt-sorry
Ich probiers nochma....sagen wir mal es ist eine Baufirmen-DB aus der ich durch Abfragen verschiedene Arbeitsleistungen bestimmten Bau-Teams zuordnen will
Bsp- Schalterdosen anklemmen--> Elektriker usw.....

Ich frage nun einzelne möglichen Leistungen von Elektrikern ab und bestimme so den Bereich....und am Ende verbinde ich alle Bereichsabfragen mit einem Union und habe so alle Elektrikerleistungen!

Bsp für Elektriker Union:
Innenausbau und Aussenausbau wären seperate Abfragen nach bestimmten Kriterien...innerhalt dieser Kriterien kommt es teilweise zu Überschneidungen, die durch weiteres eingrenzen des Bereichs nicht mehr ausgeräumt werden können.

Kundennummer Betrag Team Bereich

123456 25,00 Elektriker Innenausbau
123456 25,00 Elektriker Aussenausbau
124567 35,00 Elektriker Innenausbau

ich bemesse dem Innenausbau jetzt mehr Priorität und will das bei doppelter Kundennummer der Aussenausbau dann rausfällt....eine Gruppierung funktioniert nicht und auch ein max beim Betrag nicht, weil es ja beim Kunden 123456 der selbe Betrag ist.
das ist quasi nur ein Auschnitt es gesamten Ergebnisses....es gibt noch viel mehr Bereiche und Teams!
Hoffe es ist so besser verständlich....sorry für das obere Bsp.