Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Zliczanie rekordow
Forum PHP.pl > Forum > Bazy danych > MySQL
thornag
Witam,

Mam takie zapytanie
  1. SELECT COUNT( d.id ) AS Allocated, bdm.brand_name
  2. FROM _dealers d, brands bdm, brand_dealers bdmd
  3. WHERE bdm.brand_id = bdmd.brand_id AND bdmd.dealer_id = d.id
  4. GROUP BY bdm.brand_name


do tego jak widac trzy tabele, jedna z rodzicem, druga z dziecmi, i trzecia okreslajaca relacje miedzy nimi.

To zapytanie zwroci mi ile dzieci maja rodzice.

Dzieci mozna podzielic na dwie kategorie, majace konta bankowe i te bez kont.

Czy mozna to zapytanie zmienic tak zeby wynik podal ogolna liczbe dzieci i liczbe dzieci z kontem ?

Cos jakby:
  1. SELECT COUNT( d.id ) AS Allocated, COUNT(d.got_banking = 1) AS SignedUp, bdm.brand_name
  2. FROM _dealers d, brands bdm, brand_dealers bdmd
  3. WHERE bdm.brand_id = bdmd.brand_id AND bdmd.dealer_id = d.id
  4. GROUP BY bdm.brand_name
prond
Spróbuj tak:
  1. SELECT
  2. b.id,
  3. b.brand_name,
  4. COUNT( b.id ), --ilosc wszystkich brand'ow
  5. COUNT( d.id ), --ilosc dealer'ow dla danego brand'a
  6. FROM brands b
  7. LEFT OUTER JOIN brand_dealers bd
  8. ON (b.brand_id = bd.brand_id)
  9. LEFT OUTER JOIN _dealers d
  10. ON (bd.dealer_id = d.id)
  11. GROUP BY b.id, b.brand_name
thornag
Pomijajac to ze to zapytanie ma zla skladnie, nie sadze zeby moglo mi pomoc. Nie widze w nim warunku ktory by sprawdzal ktory rekord w _dealers ma _dealer.got_banking ustawione na 'Y' a o to sie rozchodzi.
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.