[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Sep 2005
    Beiträge
    28

    SQL-Abfrage für 80% Kunden

    Hallo Zusammen,

    ich brauche mal einen Gedankenanstoß für eine SQL Abfrage.

    Tabelle:
    Kunde, Jahr, Umsatz

    Ich möchte eine Auflistung aller Kunden eines Jahres absteigend nach Umsatz (also der größte Kunde zuerst), mit denen ich 80% des Gesamtumsatzes mache. Habe ich z.B. 100.000€ Umsatz im Jahr 2018, möchte ich die stärksten Kunden sehen, die zusammen 80.000€ Umsatz gemacht haben.

    Geht das per SQL?

    Vielen Dank für Eure Hilfe

  2. #2
    Registriert seit
    Jun 2018
    Beiträge
    2
    Hallo,
    in neueren Versionen gibt es die Window-Funktion sum() over ...
    In 7.1 z.B. geht es auch so:
    with data (kd,ums) as (values
    (1, 50000),(2, 20000),(3, 11000),(4, 2000),(5, 3000),(6, 3000),
    (7, 8000), (8, 3000)),
    parm (maxums,bestums) as
    (select sum(ums),int(sum(ums) * 0.8)
    from data),
    sort (kd,ums,rn) as
    (select kd,ums,
    row_number() over (order by ums)
    from data),
    akku (umssum,kd,ums,cr) as
    (select ums,kd,ums, rn
    from sort
    where rn = 1
    union all
    select a.umssum + s.ums,
    s.kd,
    s.ums,
    s.rn
    from akku a
    inner join sort s on a.cr + 1 = s.rn)
    select kd,ums
    from akku
    cross join parm
    where umssum >= (maxums - bestums)
    order by ums desc

  3. #3
    Registriert seit
    Sep 2005
    Beiträge
    28
    Genial. Hat funktioniert. Vielen Dank.

  4. #4
    Registriert seit
    Nov 2003
    Beiträge
    2.220
    Probier's mal so oder ähnlich:

    How to SELECT top N rows that sum to a certain amount?

    select t1.amount
    from MyTable t1
    left join MyTable t2 on t1.amount > t2.amount
    group by t1.amount
    having coalesce(sum(t2.amount),0) < 7

Ähnliche Themen

  1. SQL - Höchsten Datumswert eines Kunden anzeigen lassen
    Von svente im Forum NEWSboard programmierung
    Antworten: 22
    Letzter Beitrag: 23-02-17, 12:10
  2. Antworten: 0
    Letzter Beitrag: 02-09-02, 10:25
  3. Antworten: 0
    Letzter Beitrag: 06-06-02, 08:59
  4. Antworten: 0
    Letzter Beitrag: 04-06-02, 13:04
  5. Antworten: 0
    Letzter Beitrag: 22-10-01, 11:18

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •