Pilsener
9.02.2009, 10:05:19
Witajcie, mam tabelę, która wygląda np. tak:
user|liczba|k1|k2|k3
abc|23|1|0|0
xyz|12|0|1|0
tes|8|1|0|0
qwe|24|0|1|1
abc|7|1|0|1
asd|9|1|1|0
xyz|15|1|1|1
Każdy login może należeć do dowolnej grupy (k1, k2, k3) - wtedy jest tam 1, może należeć do wielu grup i powtarzać się dowolną liczbę razy w tabeli
Czy jest możliwe wyciągnięcie jednym zapytaniem takiej tabeli, żeby policzyć sumę liczb dla danego loginu, spełniającego np. kryteria przynależności do k1,k2,k3 zachowując informacje, jaka jest suma dla k1, k2 ,k3 etc.
Coś takiego ma wyjść:
user|suma liczb dla k1|suma liczb dla k2| suma liczb dla k3
abc|30|0|7
xyz|15|27|15
Ewentualnie w wierszach:
abc|k1|suma
abc|k2|suma
abc|k3|suma
xyz|k1|suma
xyz|k2|suma
etc.
Pilsener
9.02.2009, 11:36:53
Znam group by i sum - niestety jakbym nie kombinował z grupowaniem, nijak mi nie wychodzi.
Eidt: chodzi o to, że jeden wpis może należeć DO WIELU grup, więc grupowanie wyświetli ich kombinację, a nie sumę, jak mam np.:
login|liczba|k1|k2|k3
--------------------------
abc|1|1|0|0
abc|1|1|0|0
abc|2|0|1|0
abc|3|0|0|1
abc|4|1|1|1
abc|5|1|1|0
To zamiast wyświetlić:
abc|k1|11
abc|k2|11
abc|k3|7
To wyświetla:
abc|2
abc|2
abc|3
abc|4
abc|5 - sumuje tylko identyczną kombinację kryteriów
nospor
9.02.2009, 11:49:44
SELECT login, sum(liczba*k1) sumak1,sum(liczba*k2) sumak2, sum(liczba*k3) sumak3 FROM tabela GROUP BY login
Pilsener
9.02.2009, 11:53:09
Na to nie wpadłem

Normalnie jak mnie gdzieś zobaczysz, to zgłoś się po piwo.