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
5 svar · 385 visningar · startad av Compusa
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
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
Fick dess värre ingen av ovanstående förslag att fungera :(
Standardfråga #1:
Vad menar du med att det "inte fungerar"?
Standardfråga #2:
Vad får du för felmeddelande?
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
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'