> SELECT users.id AS id, SUM((type * 2 - 7) * value) AS balance
> FROM users LEFT JOIN cash ON users.id = cash.userid AND (cash.type
> = 3 OR cash.type = 4) AND users.status = 3 GROUP BY users.id
> ^^^^^^^^^^^^^^^^^^^^
>
> Dla dociekliwych podaję zapytanie, o które chodziło na początku wątku, czyli
> zwracające dłużników (niestety zadziała pewnie tylko na postgresie):
^^^^^^^^^^
> select name, lastname, ((select SUM(value) from cash t1 where type = 3 and
> t1.userid= t3.userid group by userid, type) - (select SUM(value) from cash
> t2 where type=4 and t2.userid = t3.userid group by userid, type)) as bilans
> from cash t3
W mysql trzebaby ten myk z tabelą tymczasową robić.
W związku z w/w łazi mi po głowie problem że zapytania z wersji na wersję są
corazbardziej 'db-specyfic'. Rozwiązania różne mi się kołaczą, ale skor mamy
własny międzymordź bazodanowy (łapkami Baseta zrobion') to zróbmy sobie np
w tym międzymordziu jeszcze jeden poziom abstrakcji i 'wirtualną' tablelkę:
user_id
saldo
Wystarczy nam user_id do powiązania z dowolnymi polami z users, np zmiana
finansów czy sqla na np dbfy czy Oracle nie będzie powodować nam zmian w lmsLIB
zostaje tylko skrypty perlowe popsuc, aby używały naszego 'perl-lmsdb' i taką
tabelkę też miały.
komentz?
kd.
--
Krzysztof Drewicz
Podsłuchane na pogrzebie: "Wiem, że to niezręcznie pytać o takie rzeczy w tej
chwili, ale przypominasz sobie, żeby on kiedykolwiek wspomniał coś o kodzie
źródłowym?" --- Charles Addams