Re: SQL-Frage für Fortgeschrittene
Geizhals » Forum » Programmierung » SQL-Frage für Fortgeschrittene (9 Beiträge, 968 Mal gelesen) Top-100 | Fresh-100
Du bist nicht angemeldet. [ Login/Registrieren ]
.  Re: SQL-Frage für Fortgeschrittene  (frostschutz am 28.02.2020, 12:32:08)
..  Re(2): SQL-Frage für Fortgeschrittene  (zeddicus am 28.02.2020, 21:02:56)
.  Re: SQL-Frage für Fortgeschrittene  (Psychopath am 29.02.2020, 20:13:59)
.  Re: SQL-Frage für Fortgeschrittene  (Infosauger am 04.03.2020, 15:33:59)
..  Re(2): SQL-Frage für Fortgeschrittene  (zeddicus am 04.03.2020, 21:01:10)
...  Re(3): SQL-Frage für Fortgeschrittene  (Infosauger am 10.03.2020, 14:32:56)
....  Re(4): SQL-Frage für Fortgeschrittene  (zeddicus am 10.03.2020, 15:14:46)
.
Re: SQL-Frage für Fortgeschrittene
01.05.2020, 16:57:30
Spannendes Beispiel, falls die Frage noch aktuell ist, hier meine Lösung:

with cheapest_supplier_overall as
(
   select x.artnr, x.lieferantennr, x.menge_ab, x.einkaufspreis
     from (
           select p.*, row_number() over (partition by artnr order by einkaufspreis) rang
             from preislisten p
          ) x
    where x.rang = 1      
),
cheapest_supplier_for_order as
(
   select x.artnr, x.datum, x.menge, x.lieferantennr, x.menge_ab, x.einkaufspreis
     from (
           select b.artnr, b.datum, b.menge, p.lieferantennr, p.menge_ab, p.einkaufspreis, row_number() over (partition by b.artnr order by p.einkaufspreis) rang
             from bestellungen b
             join preislisten p
               on (    p.artnr = b.artnr
                   and p.menge_ab <= b.menge
                  )
            
          ) x
    where x.rang = 1
)
select a.artnr, a.datum, a.menge,
       a.lieferantennr lieferant1,
       a.menge_ab lieferant1_ab_menge,
       a.einkaufspreis lieferant_1_einkaufspreis,
       b.lieferantennr lieferant2,
       b.menge_ab lieferant2_ab_menge,
       b.einkaufspreis lieferant2_einkaufspreis
  from cheapest_supplier_for_order a
  join cheapest_supplier_overall b
    on (b.artnr = a.artnr);

btw: Für Oracle SQL Fragen in Foren eignet sich livesql.oracle.com wunderbar.
https://livesql.oracle.com/apex/livesql/s/j02wllnvr8w3fyrf1jdso7fd4

Antworten PM Alle Chronologisch Zum Vorgänger
 
Melden nicht möglich
 

Dieses Forum ist eine frei zugängliche Diskussionsplattform.
Der Betreiber übernimmt keine Verantwortung für den Inhalt der Beiträge und behält sich das Recht vor, Beiträge mit rechtswidrigem oder anstößigem Inhalt zu löschen.
Datenschutzerklärung