[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.