Próbuję połączyć oświadczenie SQL, które powinno dać mi jeden wiersz na każdy tydzień roku, zawierający całkowitą ilość faktur z tego tygodnia, a także sumę wszystkich cen. ...

0
DanielRichter 15 marzec 2021, 14:44

1 odpowiedź

Najlepsza odpowiedź

Liczba faktur jest wyłączony, ponieważ dołączasz do części części, więc COUNT() jest naprawdę licząc kawałki.

Całkowita kwota z drugiej strony powinna być poprawna, w oparciu o informacje w pytaniu. Możesz najpierw pierwszy problem za pomocą COUNT(DISTINCT):

SELECT DATEPART(year, i.inv_date) as year,
       DATEPART(week, i.inv_date) as week,
       COUNT(DISTINCT i.id) as amount_invoices,
       SUM(p.price) as sales_total
FROM invoices i JOIN
     invoice_positions p
     ON i.id = p.invoice_id 
GROUP BY DATEPART(week, i.inv_date), DATEPART(year, i.inv_date)
ORDER BY year DESC, week DESC;
0
Gordon Linoff 15 marzec 2021, 11:47