Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [mysql] zmienna WHERE w jednym zapytaniu
Forum PHP.pl > Forum > Bazy danych
M@X
Cześć.

Próbuje wylistowac proste zapytanie.
Mam tabele "users" i kolumny: "name" i "payment" = (1/0)
Chcę wylistować i zliczyć ile takich samych "name" ma payment = 0 a ile payment = 1.
Nie wiem w jaki sposób dać możliwość wyświetlania coś na zasadzie: "WHERE payment = 1 or 2"

  1. $query=mysql_query('SELECT DISTINCT(COUNT(*)) AS how, name FROM users WHERE category = "1" group by name');
  2.  
  3. while($result=mysql_fetch_array($query))
  4. {
  5. echo 'Company: '.$result['name'].' - payment0: ? ? ? / payment1: ? ? ?<br>';
  6. }


Przykładowa tabela:

name | payment
aaa 1
aaa 0
bbb 1
bbb 1
bbb 1


Więc wynik powinien być taki:

Company: aaa - payment0: 1, payment1: 1
Company: bbb - payment0: 0, payment1: 3


W jaki sposób zrobić to w jednym zapytaniu ?
trueblue
  1. SELECT name,
  2. SUM(ilosc*(1-payment)) AS payment0,
  3. SUM(ilosc*(1-ABS(SIGN(payment-1)))) AS payment1
  4. FROM (SELECT name,payment,COUNT(payment) AS ilosc FROM users GROUP BY name,payment) AS tmp
  5. GROUP BY name
mmmmmmm
Z jednym grupowaniem: http://sqlfiddle.com/#!9/1b24c/2
trueblue
Bez COALESCE i CASE:
  1. SELECT
  2. name,
  3. SUM(payment=0) AS payment0,
  4. SUM(payment=1) AS payment1
  5. FROM
  6. users
  7. GROUP BY name;


A swoją drogą, M@X, jaki powinien być wynik, jeśli dla danego name brak jakiejkolwiek opcji payment?
StevDefs
Viagra Sildenafil Mujeres tipos de viagra que existen Cytotec Abortion Buy Online In The Us
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.