[060619]
Na szybko i w jednym przebiegu: mam tabelę z naklikanymi przez użytkowników akcjami typu A i typu B (różnie rozliczanymi) w różnym czasie.
Zadanie: migiem wyciągnąć zbiorczo niewypłacone sumy – przy czym jeden user może zajmować tylko jeden rekord…
SELECT id_uzytkownika, Last(data_klikniecia) AS data, Sum(naleznosc) AS naleznosci
FROM (
SELECT id_uzytkownika, data_klikniecia,
Count(data_klikniecia)*3 AS naleznosc
FROM uzytkownicy INNER JOIN wyplaty
ON uzytkownicy.id=wyplaty.id_uzytkownika
WHERE typ=’akcja_typu_A’
GROUP BY id_uzytkownika, data_klikniecia
HAVING data_wyplaty IS Null
UNION
SELECT id_uzytkownika, data_klikniecia,
Count(data_klikniecia)*0.5 AS naleznosc
FROM uzytkownicy INNER JOIN payout
ON uzytkownicy.id=wyplaty.id_uzytkownika
WHERE typ=’akcja_typu_B’
GROUP BY id_uzytkownika, data_klikniecia
HAVING data_wyplaty IS Null
)
GROUP BY id_uzytkownika
…chyba uchwyciłem fragment poniedziałkowej atmosfery
Skomentuj
Musisz być zalogowany żeby móc skomentować ten wpis.