Nie mam za bardzo jak przetestować bo my sprzedajemy pojedyncze sztuki, ale spróbuj (przyjąłem miesiąc wrzesień):
Kod: Zaznacz cały
WITH wynikpierwszy AS (
SELECT ID_KLIENT, DATA_ZAKUPU
FROM TRANSAKCJE
WHERE EAN = 'tutajwpiszean' AND DATA_ZAKUPU BETWEEN '2023-09-01' and '2023-09-31' and GRUPA_IDS = ''
),
IloscPierwszy AS (
SELECT COUNT(*) AS Ilosc1
FROM wynikpierwszy
),
IloscDrugi AS (
SELECT COUNT(DISTINCT w.ID_KLIENT) AS Ilosc2
FROM wynikpierwszy w
JOIN TRANSAKCJE t ON w.ID_KLIENT = t.ID_KLIENT AND t.DATA_ZAKUPU > w.DATA_ZAKUPU AND GRUPA_IDS = ''
)
SELECT
CASE
WHEN i1.Ilosc1 = 0 THEN 0
ELSE (i2.Ilosc2 * 100.0 / i1.Ilosc1)
END AS ProcentKlientow
FROM IloscPierwszy i1, IloscDrugi i2;
a jeśli chcesz sobie wyświetlić zestawienie ilości i sumy zakupów dokonanych przez Klientów po zakupie produktu x to zastosuj to zapytanie
Kod: Zaznacz cały
WITH wynikpierwszy AS (
SELECT ID_KLIENT, DATA_ZAKUPU
FROM TRANSAKCJE
WHERE EAN = 'tutajwpiszEAN' and DATA_ZAKUPU BETWEEN '2023-09-01' and '2023-09-31' and GRUPA_IDS = ''
)
SELECT tk.KL_LOGIN AS Login,
SUM(t.ilosc) AS SumaIlosc,
ROUND(SUM(t.KWOTA), 2) AS Sumakwota
FROM wynikpierwszy w
JOIN TRANSAKCJE t ON w.ID_KLIENT = t.ID_KLIENT AND t.DATA_ZAKUPU > w.DATA_ZAKUPU
JOIN TRANS_KLIENCI tk ON w.ID_KLIENT = tk.ID_KLIENT
GROUP BY tk.KL_LOGIN;
jakby nie działało albo chciałbyś coś dołożyć - daj znać.