Hallöchen,
ich bräuchte mal eure Hilfe bzw. einen Denkanstoß wie man das am Besten realisieren kann:
Ich habe eine MSSQL Datenbank mit 4 Tabellen.
Tabelle1= Artikelnummern
Tabelle2=Artikeldetails
Tabelle3=Artikelattribute
Tabelle4=Preise
Ich muss jetzt über einen SQL-Befehl alle Artikelnummern aus Tabelle1 laden. Diese Artikelnummern werden dann verknüpft mit der Bestellnummer aus der Tabelle2. Aus Tabelle3 gesellt sich dann noch die Warengruppe dazu.
Das ganze würde sich ja folgendermaßen lösen lassen:
Jetzt habe ich in Tabelle4 aber folgendes stehen:
ID | Customernumber | ArticleID | Price
Also brauche ich jetzt in der oben genannten Selektion noch (falls vorhanden) für jeden Artikel den Preis aus Tabelle4 für Kundennummer "103408".
Das funktioniert auch mit folgendem Select:
Hier habe ich jetzt allerdings NUR die Artikel drin stehen wo der Kunde in der Tabelle "directprices" auch einen Preis hinterlegt hat (was ja klar ist).
Da ich aber später noch andere Preistabellen abfragen muss wenn in der "uni_directprices also Tabelle4" kein Preis gefunden wurde, bräuchte ich natürlich alle Artikelnummern angezeigt auch wenn diese nicht für den Kunden in
der Tabelle4 hinterlegt sind.
Die abfrage muss später so aussehen:
Hole alle Artikel aus der Hauptartikeltabelle und ergänze mir dazu ein paar spezifische Daten aus ein paar anderen Tabellen.
Zum Schluss hole mir den Preis aus Tabelle 4. Wenn dort kein Preis hinterlegt ist, hole mir den Preis aus Tabelle5. Wenn dort auch kein Preis ist, dann den Preis aus Tabelle6 ermitteln.
Das ganze wird aktuell in ein Dataset geladen. Erst hatte ich eine Schleife gebaut die einmal über alle Artikel drüber rennt und dann die Sqlabfragen macht wie ich sie brauche aber bei 20000 Artikeln sind das Pro Zeile dann 3 oder 4 SQL-Abfragen.
Ich denke das ist nicht Sinn und Zweck des ganzen
Vielen Dank für eure Hilfe!
ich bräuchte mal eure Hilfe bzw. einen Denkanstoß wie man das am Besten realisieren kann:
Ich habe eine MSSQL Datenbank mit 4 Tabellen.
Tabelle1= Artikelnummern
Tabelle2=Artikeldetails
Tabelle3=Artikelattribute
Tabelle4=Preise
Ich muss jetzt über einen SQL-Befehl alle Artikelnummern aus Tabelle1 laden. Diese Artikelnummern werden dann verknüpft mit der Bestellnummer aus der Tabelle2. Aus Tabelle3 gesellt sich dann noch die Warengruppe dazu.
Das ganze würde sich ja folgendermaßen lösen lassen:
Jetzt habe ich in Tabelle4 aber folgendes stehen:
ID | Customernumber | ArticleID | Price
Also brauche ich jetzt in der oben genannten Selektion noch (falls vorhanden) für jeden Artikel den Preis aus Tabelle4 für Kundennummer "103408".
Das funktioniert auch mit folgendem Select:
SQL-Abfrage
- sqlquerystring = "Select A.id,B.ordernumber,C.WGR,D.price " &
- "FROM " &
- "s_articles as A " &
- "join s_articles_details as B " &
- "ON A.id=B.articleID " &
- "join s_articles_attributes as C " &
- "ON A.id=C.articleID " &
- "left join uni_directprices as D " &
- "ON A.id=D.articleId where D.customernumber='103408'"
Hier habe ich jetzt allerdings NUR die Artikel drin stehen wo der Kunde in der Tabelle "directprices" auch einen Preis hinterlegt hat (was ja klar ist).
Da ich aber später noch andere Preistabellen abfragen muss wenn in der "uni_directprices also Tabelle4" kein Preis gefunden wurde, bräuchte ich natürlich alle Artikelnummern angezeigt auch wenn diese nicht für den Kunden in
der Tabelle4 hinterlegt sind.
Die abfrage muss später so aussehen:
Hole alle Artikel aus der Hauptartikeltabelle und ergänze mir dazu ein paar spezifische Daten aus ein paar anderen Tabellen.
Zum Schluss hole mir den Preis aus Tabelle 4. Wenn dort kein Preis hinterlegt ist, hole mir den Preis aus Tabelle5. Wenn dort auch kein Preis ist, dann den Preis aus Tabelle6 ermitteln.
Das ganze wird aktuell in ein Dataset geladen. Erst hatte ich eine Schleife gebaut die einmal über alle Artikel drüber rennt und dann die Sqlabfragen macht wie ich sie brauche aber bei 20000 Artikeln sind das Pro Zeile dann 3 oder 4 SQL-Abfragen.
Ich denke das ist nicht Sinn und Zweck des ganzen
Vielen Dank für eure Hilfe!