TSQL - ja zrobić kwerende z wartoscią sprzedazy w przedziale - rozna daty od -do dla kazdego Klienta

0

Witam
Mam tabelę z przedziałami czasowymi Klientow:
1 tabela / rozna przedzialy dla kazdego z klientow
Klient Nr | Data od | Data Do|

2 tabela Pozycje faktur
Klient Nr| Data fv | WS

Jak napisać SQL który uwzględni rozne daty od i do dla kazdego z Klientow i policzy wartosc Sprzedazy

0

chcesz mieć wartość sprzedaży dla każdego klienta z podziałem na okresy od - do? Czyli jeśli od 1.01.2017 do 2.01.2017 istnieje 10 pozycji faktur, a potem od 5.01.2017 do 6.01.2017 istnieje 80 pozycji faktur to ma być zsumowane i wyświetlone w 2 pozycjach czy w jednej ?

0

Może coś w tym stylu:


SELECT
klienci.nr
, (SELECT SUM(Wartość)
   FROM faktury INNER JOIN
        przedziały ON faktury.klientNr = przedziały.klientId
   WHERE faktury.klientNr = klienci.nr
         AND faktury.Data BETWEEN przedziały.DataOd and przedziały.DataDo) as Wartość
FROM TabelaKlientów klienci
GROUP BY klienci.nr
0
SELECT Sum(sprzedaz) FROM PrzedzialyCzasoweKlientow p JOIN PozycjeFaktury k on k.nr_klienta=p.nr_klienta and k.data between p.data_od and p.data_do
0

Wystarczy coś takiego:

SELECT
  K.nr
  ,SUM(F.wartosc) as sprzedaz
FROM Klienci K
INNER JOIN Faktury F ON F.klientNr = K.nr
INNER JOIN Przedzialy P ON P.klientId = K.nr AND F.data BETWEEN P.dataOd AND P.dataDo
GROUP BY K.nr;

P.S. wypadałoby zdecydować się na nazwy polskie lub angielskie oraz je ujednolicić. Zdecyduj się czy nazwy pól zaczynasz z wielkiej czy z małej litery, podobnie z nazwami tabel. Pomieszanie z poplątaniem. Poza tym polecam nie używać polskich liter oraz polskich nazw przy nazywaniu tabel oraz pól.

0
woolfik napisał(a):

chcesz mieć wartość sprzedaży dla każdego klienta z podziałem na okresy od - do? Czyli jeśli od 1.01.2017 do 2.01.2017 istnieje 10 pozycji faktur, a potem od 5.01.2017 do 6.01.2017 istnieje 80 pozycji faktur to ma być zsumowane i wyświetlone w 2 pozycjach czy w jednej ?
w jednej - dla danego Klienta -w jednej
ale kazdy Klient ma różne przedzialy czasowe w których mam wyliczyć sumę sprzedaży

0
gramir napisał(a):

ale kazdy Klient ma różne przedzialy czasowe w których mam wyliczyć sumę sprzedaży

To nic nie szkodzi, że każdy klient ma inne przedziały. Po to masz BETWEEN w złączeniu, aby obsłużyć daty dla każdego klienta osobno.

0
Haskell napisał(a):
gramir napisał(a):

ale kazdy Klient ma różne przedzialy czasowe w których mam wyliczyć sumę sprzedaży

To nic nie szkodzi, że każdy klient ma inne przedziały. Po to masz BETWEEN w złączeniu, aby obsłużyć daty dla każdego klienta osobno.

Ok dzieki - juz zrobione- temat zalatwiony.

1 użytkowników online, w tym zalogowanych: 0, gości: 1