Einzelnen Beitrag anzeigen

jobo

Registriert seit: 29. Nov 2010
3.072 Beiträge
 
Delphi 2010 Enterprise
 
#10

AW: (SQL) Anzahl Tage ohne Buchung

  Alt 20. Mär 2015, 11:20
Da es nicht um explizite Darstellung der Tage geht, sondern nur um die Anzahl, sollte eine Berechnung ohne Hilfdaten möglich sein.

Vorschlag ('2015-03-17' und '2015-03-21' sind durch die Range Parameter zu ersetzen)
Code:
select distinct na.pid,
                date('2015-03-21') - date('2015-03-17') -
                ifNULL(count_, 0) as DaysWithoutOrder
  from torder /* besser tperson*/ na
  left join (select pid, count(*) as count_
               from (select distinct pid, date(o.ord_datetime)
                       from torder o
                      where o.ord_datetime between '2015-03-17'
                                               and '2015-03-21') y
              group by pid) x
    on na.pid = x.pid
  • Selektiere alle pid per Tagesanteil der Order im gewünschten Zeitraum,
  • Gruppiere das Ergebnis erneut nach pid und zähle die vorhanden Tage mit Bestellung,
  • Joine das Ergebnis mit der Liste aller Personen (um ganz fehlende personen mit einzubeziehen) und verrechne die Tage mit der Anzahl der Tage im Wunschintervall.
Gruß, Jo
  Mit Zitat antworten Zitat