O OveRRidE Medlem sedan feb. 2001 12 078 inlägg Frågan 5 juli 2002 11:17 #1 Jag behöver en query som ger mig två värden från en tabell med meddelanden i.
Tabell:
ID strMess fromId toId
-------------------------------------
1 Hej 23 21
2 Hej igen 21 23
3 Hej då 21 24
Jag vill få fram hur många meddelanden i tabellen som har fromId [integer] och hur många som har toId [samma integer] i en fråga.
Det står still i huvet..
O OveRRidE Medlem sedan feb. 2001 12 078 inlägg Nu står det ännu mer still:
"SELECT (SELECT count(*) AS antalTo FROM mail WHERE toId = " & intUserId & "),(SELECT count(*) AS antalFrom FROM mail WHERE fromId = " & intUserId & ") FROM mail"
Kan man verkligen göra så? Det fungerar iallafall, förutom att jag inte kan använda ref antalTo och antalFrom utan måste skriva rs(0) och rs(1).
L LarsG Medlem sedan dec. 2000 12 464 inlägg Jag förstår inte vad du förväntar dig för resultat. Givet dina värden i tabellen, vad skulle du få för resultat då?
O OveRRidE Medlem sedan feb. 2001 12 078 inlägg Om jag frågar med integervärde 21 vill jag ha antalTo till 1 och antalFrom till 2.
L LarsG Medlem sedan dec. 2000 12 464 inlägg När jag ser din fråga så kanske jag förstår
q = "select sum(case when toid = " & id & " then 1 else 0 end) ," & _
" sum(case when fromid = " & id & " then 1 else 0 end) from mail"
Din fråga borde gå om du lägger till distinct annars får du lika många poster som det finns rader i tabellen.
O OveRRidE Medlem sedan feb. 2001 12 078 inlägg Jag la in mina variabelnamn i din fråga, men jag får "Unspecified error." Jag antar att din fråga inte stödjs av Access..
select sum(case when toId = " & intUserId & " then 1 else 0 end) , sum(case when fromId = " & intUserId & " then 1 else 0 end) from mail
L LarsG Medlem sedan dec. 2000 12 464 inlägg access aah
q = "select sum(iif(toId = " & intUserId & ",1,0)) , sum(iif(fromId = " & intUserId & ",1,0)) from mail"