webForumDet fria alternativet

flera counts med mysql

15 svar · 412 visningar · startad av pellesvenne

pellesvenneMedlem sedan jan. 2002227 inlägg
#1

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);
LarsGMedlem sedan dec. 200012 464 inlägg
#2
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.

pellesvenneMedlem sedan jan. 2002227 inlägg
#3

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

LarsGMedlem sedan dec. 200012 464 inlägg
#4
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
pellesvenneMedlem sedan jan. 2002227 inlägg
#5

skumt where satserna funkar inte korrekt?

LarsGMedlem sedan dec. 200012 464 inlägg
#6

Intressant...

Hur tror du att någon skulle kunna hjälpa dig med den informationen?

pellesvenneMedlem sedan jan. 2002227 inlägg
#7

sorry!
when kon = 'P' and status = '1' <-- funkar ej

den ignonera det och skriver ut alla medlemmar istället för endast pojkar

LarsGMedlem sedan dec. 200012 464 inlägg
#8

Vad menar du?

Hur ser frågan ut?

Vilket resultat får du?

Vilket resultat vill du ha?

pellesvenneMedlem sedan jan. 2002227 inlägg
#9

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'

JosefMedlem sedan mars 20023 561 inlägg
#10

Då återstår enbart 3 av LarsGs frågor. ;)

pellesvenneMedlem sedan jan. 2002227 inlägg
#11

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);

pellesvenneMedlem sedan jan. 2002227 inlägg
#12

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);

pellesvenneMedlem sedan jan. 2002227 inlägg
#13

och hur gör man om man vill köra med olika tables? är det union man ska köra?

pellesvenneMedlem sedan jan. 2002227 inlägg
#14

nån som vet? hur ser union ut när man vill köra från tex 4 olika tabeller?

aasahMedlem sedan mars 20034 471 inlägg
#15

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.

pellesvenneMedlem sedan jan. 2002227 inlägg
#16

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);
133 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
131 ms — hämta tråd, inlägg och bilagor (db)