Zastanawiam się, czy jest jakiś sposób, aby uzyskać dwie oddzielne "liczby" z tabeli przy użyciu jednego zapytania? Oznacza to, że używając tabeli podobnej do poniższej chciałbym pobrać każdy kod (odrębny) i pokazać całkowitą liczbę statusu "NIE równy X lub D, a następnie mieć dodatkową kolumnę, która pokazuje całkowitą liczbę statusu" równą do X lub D, a data anulowania jest większa niż podana data (na przykład ostatnie 14 dni).SQL: Wiele instrukcji liczenia o różnych kryteriach
Tabela:
Code: Status Cancel_Date
-----------------------------------
AAA X 2012-02-01
AAA
BBB X 2012-02-01
AAA D 2012-01-01
AAA
BBB
BBB D 2012-02-01
BBB X 2012-01-01
Przykład wynik (na podstawie powyższych danych)
Code: TotalNotXorD TotalXorD
------------------------------------
AAA 2 1
BBB 1 2
TotalNotXorD: np
select code, count(*)
from table
where status not in('X','D')
group by code
TotalXorD: np.
select code, count(*)
from table
where status in('X','D')
and cancel_date >= '2012-02-01'
group by code
Zajrzałem do wykonywania podzapytań itp., Ale nie mogę uzyskać wymaganych wyników.
Wszelkie pomysły?
Dzięki.
Co baza danych używasz? – Michas