webForumDet fria alternativet

Count på flera tabeller?

5 svar · 385 visningar · startad av Compusa

CompusaMedlem sedan jan. 20023 327 inlägg
#1

Hej :)

Går det att summera antalet rader i flera tabeller med en SQL-sats? När jag kör en COUNT() på flera tabeller så multipliceras resultatet i varje tabell med nästa osv. Jag vill ha summa: 18 + 20 + 30 exempelvis

GuffaMedlem sedan juni 2004533 inlägg
#2

Du kanske kan göra en union i en nästlad select:

select sum(cnt) from (
select count(*) as cnt from tabell1
untion all
select count(*) as cnt from tabell2
untion all
select count(*) as cnt from tabell3
)

Eller kanske använda full outer join:

select count(t1.id)+count(t2.id)+count(t3.id) as cnt
from tabell1 t1
full outer join tabell2 t2 on t2.id=t1.is
full outer join tabell3 t3 on t3.id=t1.id

CompusaMedlem sedan jan. 20023 327 inlägg
#3

Fick dess värre ingen av ovanstående förslag att fungera :(

GuffaMedlem sedan juni 2004533 inlägg
#4

Standardfråga #1:
Vad menar du med att det "inte fungerar"?

Standardfråga #2:
Vad får du för felmeddelande?

CompusaMedlem sedan jan. 20023 327 inlägg
#5

Felmeddelanden när jag kör SQL-satserna i mySQL-center. "Error in syntax".

Ändrade planerna och kör med en count per tabell, men count verkar inte vara lyckat i Java med jdbc och java.sql

NöffMedlem sedan nov. 2003569 inlägg
#6

testa detta: (dock MS-SQLSERVER)


DECLARE @antal int

SELECT @antal=COUNT(ID) FROM tabell1

SELECT @antal=@antal+COUNT(ID) FROM tabell2

SELECT @antal=@antal+COUNT(ID) FROM tabell3

SELECT @antal AS 'summa alla tabellerna'
132 ms totalt · 3 externa anrop · v20260731065814-full.86db40fa
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)