Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [SQL] Zapytanie zliczające mężczyzn i kobiety z tabeli
Forum PHP.pl > Forum > Przedszkole
michail_w
Mam tabelę o następującej strukturze:
Kod
(int) IDucznia | (string) imie | (string) nazwisko | (string) IDklasy

pole IDklasy zawiera nazwę klasy, np. 1a, 1b itd.

Mam za zadanie utworzyć z tej jednej tabeli zestawienie chłopców i dziewczynek w poszczególnych klasach. Na razie udało mi się zrobić coś takiego:
  1. SELECT IDklasy, count(imie) AS kobiety FROM Uczniowie WHERE imie LIKE "*a" GROUP BY IDklasy;

ale to mi zwraca tylko ilość kobiet w poszczególnych klasach. Nie doszedłem jak teraz zliczyć odrzucone rekordy, żeby dostać ilość chłopców. Jak mam zmodyfikować zapytanie?
Skie
Ze składni SQL obstawiam, że jest to pisane w Accessie, treść zadania gdzieś widziałem... czyżby próbna matura z informatyki? snitch.gif

Biorąc pod uwagę sposób w jaki zliczasz kobiety, masz 2 wyjścia lziczając chłopców
1. Zliczyć osoby, których imię NIE kończy się na literę "a".
2. Zliczyć wszystkich i odjąć ilość kobiet, którą to już policzyłeś.

To pierwsze możesz uzyskać stosując to same zapytanie z użyciem "NOT LIKE" zamiast "LIKE" (nie wiem czy Access to obsługuje, no ale warto sprawdzić)
To drugie powinieneś natomiast wiedzieć.
poli25
SELECT IDklasy,(SELECT count(imie) FROM Uczniowie)as wszyscy,

(select count(imie)
FROM Uczniowie WHERE imie LIKE "*a") as kobiety,
(SELECT count(imie) FROM Uczniowie)-(select count(imie)
FROM Uczniowie WHERE imie LIKE "*a") as roznica

from uczniowie
group by idklasy ;


p.s.
mozesz zmodyfikowac tak:


SELECT a.IDklasy,(SELECT count(imie) FROM Uczniowie where idklasy=a.idklasy)as wszyscy,

(select count(imie)
FROM Uczniowie WHERE imie LIKE "*a" and idklasy=a.idklasy) as kobiety,
(SELECT count(imie) FROM Uczniowie where idklasy=a.idklasy)-(select count(imie)
FROM Uczniowie WHERE imie LIKE "*a" and idklasy=a.idklasy) as roznica

from uczniowie a
group by a.idklasy ;
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.