webForumDet fria alternativet

uträkning i flera steg i sp

Databaser & SQL

4 svar · 167 visningar · startad av Dino

Medlem sedan sep. 20011 914 inlägg
Frågan#1

Har en SELECT som retunerar tex

summa
----------
3596
1924
4223
12
46
9534
591

Och en annan SELECT som retunerar tex 3

Hur skall jag göra för att dela varje summa i "summa" med 3. Vill att allt detta skall ske inom en sp.

Medlem sedan dec. 200012 464 inlägg
#2

Det borde väl gå att få ihop i en fråga

select summa/(select antal from t where pk = 4711) from t2

ungefär.

Du får nog delge lite mer detaljer.

Medlem sedan sep. 20011 914 inlägg
#3

Koden

SELECT SUM(dbo.g_qualitypoints.gq_points) AS summa
FROM g_qualitypoints INNER JOIN
          world_qualities ON 
          g_qualitypoints.gq_q_id = 
          world_qualities.qua_id INNER JOIN
          g ON g_qualitypoints.gq_glad_id = 
          gglad_id
WHERE (g_qualitypoints.gq_glad_id IN
             (SELECT glad_id
              FROM g
              WHERE (glad_team_id = 1))) AND 
             (world_qualities.qua_category = 'combat')
GROUP BY world_qualities.qua_part

Retunerar tex:
summa
----------
3596
1924
4223
12
46
9534
591

SELECT COUNT(glad_id) AS antal
FROM g
WHERE (glad_team_id = 1)

Retunerar tex: 3

Medlem sedan dec. 200012 464 inlägg
#4
SELECT SUM(dbo.g_qualitypoints.gq_points)/
 (select count(*) from g 
where glad_team_id = g_qualitypoints.gq_glad_id) AS antal
FROM g
WHERE (glad_team_id = 1)
 AS summa
FROM g_qualitypoints INNER JOIN
          world_qualities ON 
          g_qualitypoints.gq_q_id = 
          world_qualities.qua_id INNER JOIN
          g ON g_qualitypoints.gq_glad_id = 
          gglad_id
WHERE (g_qualitypoints.gq_glad_id IN
             (SELECT glad_id
              FROM g
              WHERE (glad_team_id = 1))) AND 
             (world_qualities.qua_category = 'combat')
GROUP BY world_qualities.qua_part

Typ.

Medlem sedan sep. 20011 914 inlägg
#5

Jo det funkade fint. Tack. :)

Red/ Kunde göra så här med.

DECLARE @antal int
SET @antal = (SELECT COUNT(glad_id)
FROM g
WHERE (glad_team_id = 1))

SELECT SUM(g_qualitypoints.gq_points)/(@antal) AS summa
...
267 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
137 ms — deklarationer (db)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)
137 ms — ändringar (db)