Preisvergleich innerhalb einer SQL-Abfrage

micha.74

Grünschnabel
In einer Tabelle sind viele verschiedene Artikel mit gleichen Artikelnummern verschiedener Hersteller und Kunden gelistet.
Ich möchte alle Artikel eines Kunden listen bei denen er den günstigsten Preis hat und dazu den nächst teureren Kunden auflisten.

select number as Artikelnummer, price as Preis, id as Shop
from table.article where shop=xxx ;

Ich gebe offen zu keine Ahnung zu haben und hoffe auf Hilfe, schon mal vielen Dank vorab!!!
 
Ja klar gerne :

id; part; shop; title ;number; price
205 12345 10 abc 123.45 99,21
320 12345 15 ab,c 12-345 79,22
 
Der Kunde mit dem günstigsten Preis? Nicht der Hersteller mit dem günstigsten Preis? Komisch. Egal.

Das ganze ist ziemlich einfach
SQL:
SELECT
   act.*,
   (
       SELECT min(next.price)
       FROM tbl_test1 next
       WHERE act.part = next.part
           AND act.id <> next.id
   ) AS next_price
FROM    tbl_test1 act
WHERE   act.shop = 10
 
Nicht getestet, aber ich verstehe es in etwa so:

SQL:
SELECT t1.part, t1.shop, t1.price
  FROM table.article as t1
  JOIN (SELECT t.part, MIN(t.price) 
                FROM table.article as t
                GROUP BY t.part) as t2
  ON t1.part = t2.part
 
Zurück