select count(*).
sum(case when sprak = 'se' then 1 end),
sum(case when kon = 'P' and status = '1' then 1 end)
from medlem
Flyttas från databashanterare.
15 svar · 412 visningar · startad av pellesvenne
hur gör man? jag kör med mysql 4.0 och php?
$sql = "SELECT Count(ID),(SELECT Count(ID) from medlem where sprak = 'se') as medlemmar from medlem,
(Count(ID) from medlem where Kon = 'P' and Status = '1') as medlemmar 2";
$result = mysql_query($sql);
$medlemmar = mysql_result($result, 0);
$medlemmar2 = mysql_result($result, 0);
select count(*).
sum(case when sprak = 'se' then 1 end),
sum(case when kon = 'P' and status = '1' then 1 end)
from medlem
Flyttas från databashanterare.
hur ska jag får jag ut värden med as?
nu har jag 3 st count!
select count(*),
sum(case as pojke when kon = 'P' and status = '1' then 1 end),
sum(case as antalmedlemmar when pa = '1' then 1 end),
sum(case as flicka when kon = 'F' and status = '1' then 1 end)
from medlem
select count(*),
sum(case when kon = 'P' and status = '1' then 1 end) as pojke,
sum(case when pa = '1' then 1 end) as antalmedlemmar,
sum(case when kon = 'F' and status = '1' then 1 end) as flicka
from medlem
skumt where satserna funkar inte korrekt?
sorry!
when kon = 'P' and status = '1' <-- funkar ej
den ignonera det och skriver ut alla medlemmar istället för endast pojkar
resultaten ser ut så här?
Total medlemmar: 7
Flickor: 7
Pojkar: 7
Total medlemmar stämmer ej eftersom en av posterna är pa = '0' så det ska vara 6 st
Flickor = 4
Pojkar= 3
dvs:
den hoppar över följande:
case when kon = 'P' and status = '1'
Då återstår enbart 3 av LarsGs frågor. ;)
när jag skriver ut det på mysql command line så blir det rätta värden!
kan det vara att det är fel på det här?
$antalmedlemmar = mysql_result($result,0);
$pojke = mysql_result($result,0);
$flicka = mysql_result($result,0);
jag löste det så här
$antalmedlemmar = (int) mysql_result($result,0,"antalmedlemmar");
$flicka = (int) mysql_result($result,0,"flicka");
$pojke = (int) mysql_result($result,0,"pojke");
mysql_free_result($result);
och hur gör man om man vill köra med olika tables? är det union man ska köra?
nån som vet? hur ser union ut när man vill köra från tex 4 olika tabeller?
En union kräver att du plockar ut lika många kolumner och samma typ från alla inblandade tabeller. I princip:
fullständig SQL-fråga
union
fullständig SQL-fråga
union
fullständig SQL-fråga
sätter ihop resultaten från tre tabeller. Exempel
SELECT A, C FROM T
UNION
SELECT D, Y FROM Q
WHERE F = 7
Group BY Y
UNION
SELECT R, W FROM P
Förutsatt att A, D, R har samma typ resp C, Y, W har samma typ.
har 3 st counts som jag vill slå ihop hur gör man då?
$sql = "SELECT Count(ID1) From meddelanden where Till = '".$anvandarnamn."' and Last1 = 0";
$result = mysql_query($sql);$meddelanden = mysql_result($result, 0);
$sql = "SELECT Count(ID1) From kompisar where Till = '".$anvandarnamn."' and Accepterad = 0";
$result = mysql_query($sql);$kompisar = mysql_result($result, 0);
$sql = "SELECT Count(ID1) From gastbok where Till = '".$anvandarnamn."' and Last1 = 0";
$result = mysql_query($sql);$gastbok = mysql_result($result, 0);