count + case i problem
pofe@gazeta.pl - 03-02-2007 00:01
count + case i problem
Witam Chce uzyskac liczbe rekordow spelniajacych warunek i ich % udzial w calosci kiedy wykonuje zapytanie SELECT COUNT(*) as wszystkie, COUNT(CASE .... END) as czesc FROM tab_test
otrzymje ladnie wyniki wszystkie czesc 47 31
ale jesli probuje
SELECT COUNT(*) as wszystkie, COUNT(CASE .... END) as czesc, ((czesc*100)/wszystkie) as udzial FROM tab_test
dostaje blad nieznanej kolumny czesc :(
Czy ktos wie dlaczego?
Pozdrawiam Przemo
Maciej =?iso-8859-2?Q?=A3uszczy=F1ski?= - 03-02-2007 00:01
> Chce uzyskac liczbe rekordow spelniajacych warunek i ich % udzial w > calosci > kiedy wykonuje zapytanie > SELECT COUNT(*) as wszystkie, COUNT(CASE .... END) as czesc FROM > tab_test > > otrzymje ladnie wyniki > wszystkie czesc > 47 31 > > ale jesli probuje > > SELECT COUNT(*) as wszystkie, COUNT(CASE .... END) as czesc, > ((czesc*100)/wszystkie) as udzial FROM tab_test > > dostaje blad nieznanej kolumny czesc :( > Witam.
Twoje zapytanie ma pewna sprzecznosc: jest wykonywane dla kazdego rekordu z osobna, natomiast chcialoby (chcialbys) znac wynik obliczany dla wszystkich :) Obawiam sie, ze nie da sie tego pogodzic (a przynajmniej nie w ten sposob). Mozesz rozbic to na dwa kroki albo korzystac z podzapytan (pierwszy wariant ponizej):
DECLARE @Wszystkie int, @Czesc int
SELECT @Wszystkie = COUNT(*) as wszystkie, @Czesc = COUNT(CASE .... END) as czesc FROM tab_test
IF @Wszystkie <> 0 SELECT @Wszystkie AS Wszystkie, @Czesc AS Czesc, @Czesc*100/@Wszystkie AS Udzial ELSE SELECT 0 AS Wszystkie, 0 AS Czesc, 0 AS Udzial
Pozdrawiam Maciek
PS. Dodawaj informacje o bazie, z ktorej korzystasz. M. -- *** A czym się różni Cray od normalnego peceta? *** Tym, że Cray wykonuje pętle nieskończone w 10 sekund.
pofe@gazeta.pl - 03-02-2007 00:01
OK, juz znalazlem odp :)
zanotowane.pldoc.pisz.plpdf.pisz.pleffulla.pev.pl
|
[MSSQL2000] Problem z =?ISO-8859-2?Q?tabel=B1/indeksem/zapytanie?==?ISO-8859-2?Q?m_czy_b=B3=B1d_w_bazie_danych=2E=2E=2E?=
mysql i mysql-front, problem
String line; if (line=="cos"){...}....problem
Problemy z =?ISO-8859-2?Q?instalacj=B1_PostgreSQL_na_syste?==?ISO-8859-2?Q?mach_Windows?=
[postgres] Problem z =?ISO-8859-2?Q?zmian=B1_struktury_i_z?==?ISO-8859-2?Q?ale=BFno=B6ciami=2E?=
[oracle] =?ISO-8859-2?Q?zmia=BFd=BFony_przez_problem=3A_za?==?ISO-8859-2?Q?pytanie_do_hierarchi?=
Problem z wartościami w MySQL :( [ MySQL and ASP and VBScript ]
[PGSQL] czy ktos mial problemy z initdb pgsql 8.1 ?
[MySQL] Problem z zapisem danych w bazie danych
Problem z mysql - can't connect to MySQL/nietypowo...
zanotowane.pldoc.pisz.plpdf.pisz.plbajkomoda.xlx.pl
Cytat
Decede mihi sole - nie zasłaniaj mi słonca. Gdy kogoś kochasz, jesteś jak stworzyciel świata - na cokolwiek spojrzysz, nabiera to kształtu, wypełnia się barwą, światłem. Powietrze przytula się do ciebie, choćby był mróz, a ty masz w sobie tyle radości, że musisz ją rozdawać wokoło, bo się w tobie nie mieści Hoc fac - tak czyń. A tergo - od tyłu; z tyłu. I czarne włosy posiwieją. Safona |
|