1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

Preisvergleich innerhalb einer SQL-Abfrage

Dieses Thema im Forum "Relationale Datenbanksysteme" wurde erstellt von micha.74, 15. März 2017.

  1. micha.74

    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!!!
     
  2. sheel

    sheel I love Asm Administrator

    Hi

    Bitte mehr Details, welche Spalten die Tabelle hat usw.
     
  3. micha.74

    micha.74 Grünschnabel

    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
     
  4. sheel

    sheel I love Asm Administrator

    Und wie/woher kommt da ein "Kunde"?
     
  5. micha.74

    micha.74 Grünschnabel

    Entschuldigung, also als Kunde den Shop nehmen.

    upload_2017-3-16_18-30-55.png
     
  6. Yaslaw

    Yaslaw n/a Moderator

    Der Kunde mit dem günstigsten Preis? Nicht der Hersteller mit dem günstigsten Preis? Komisch. Egal.

    Das ganze ist ziemlich einfach
    Code (SQL):
    1. SELECT
    2.    act.*,
    3.    (
    4.        SELECT MIN(NEXT.price)
    5.        FROM tbl_test1 NEXT
    6.        WHERE act.part = NEXT.part
    7.            AND act.id <> NEXT.id
    8.    ) AS next_price
    9. FROM    tbl_test1 act
    10. WHERE   act.shop = 10
     
  7. HonniCilest

    HonniCilest Erfahrenes Mitglied

    Nicht getestet, aber ich verstehe es in etwa so:

    Code (SQL):
    1. SELECT t1.part, t1.shop, t1.price
    2.   FROM TABLE.article AS t1
    3.   JOIN (SELECT t.part, MIN(t.price)
    4.                 FROM TABLE.article AS t
    5.                 GROUP BY t.part) AS t2
    6.   ON t1.part = t2.part
     
Die Seite wird geladen...