Har en tabell med bl.a. en kolumn med främmande id nyckel och en kolumn med heltal. Kan jag med en fråga få ut summan av alla heltal som har samma främmande id? Eller måste jag hämta ett recordset och själv loopa igenom och addera heltalen? Det du kallar är att skriva en join mellan två eller fler tabeller. Ett exempel som inte är det bästa med ger en tydlig bild av vad som händer är följande:En sql-fråga
(databasen det gäller är access).Sv: En sql-fråga
<code>
select förnamn, efternamn,
poäng = (select sum(varde) from undertabell where undertabell.id = huvudtabell.id)
from huvudtabell
</code>
Här körs en s.k. subquery för att få ut ett väde i ett fält nämnt poäng. Den hämtar alltså datat från en annan tabell men används i huvudtabellen. För att få det att fungera har du en where-sats som pekar på id i undertabellen mot huvudtabellen. Dessa måste alltså överensstämma.
En annan variant är :
<code>
select h.id, förnamn, efternamn, sum(varde) as poang
from huvudtabell h, undertabell u
where u.id = h.id
</code>
Denna sql-fråga gör samma sak men här sker joinen utan att använda någon sub-query. Dock är det viktigt att veta att alla förekomster finns i huvudtabellen, men kanske inte undertabellen. Om det är tvärt om, dvs att undertabellen har fler id än vad som finns i huvudtabellen kommer inte dessa värden visas.
Genom att använda en s.k inner eller outer join kan detta tas bort, men jag tror du klarar dig med dessa två exempel. Lycka till.