/ Forside / Teknologi / Udvikling / SQL / Nyhedsindlæg
Login
Brugernavn

Kodeord


Reklame
Top 10 brugere
SQL
#NavnPoint
pmbruun 1704
fehaar 730
Interkril.. 701
ellebye 510
pawel 510
rpje 405
pete 350
gibson 320
smorch 260
10  svend_dyhr 250
Count fra en tabel og Sum fra en anden
Fra : nivS


Dato : 09-02-10 06:09

Hej NG

Jeg prøver at skrue en SQL (MS SQL Server) sammen som tæller fra en
tabel og summer fra en anden.

Jeg har 3 tabeller:

Afdeling
Id, Navn

Computer
Id, AfdelingsId, Model, Ejer

ComputerSoftware
ComputerId, SoftwareId, Pris

Det jeg ønsker er en query der giver mig følgende (eksempel):
Afdeling, AntalComputere, SamletSoftwarePris
Regnskab, 5, 5000
HR, 2, 3000
Salg, 10, 50000

Jeg har prøvet følgende, men resultatet er helt ude i skoven (prisen
bliver lagt sammen flere gange:
select Afdeling.Navn, COUNT(Computer.Id), SUM(ComputerSoftware.Pris)
from Afdeling left join Computer on Computer.AfdelingsId=Afdelinger.Id
left join ComputerSoftware on Computer.id =
ComputerSoftware.ComputerId group by Afdeling.Navn

Er der nogen der kan hjælpe mig med at konstruere den korrekte SQL
select sætning?

Mvh. Hans Milling...

 
 
Leif Neland (09-02-2010)
Kommentar
Fra : Leif Neland


Dato : 09-02-10 17:13

Den 09-02-2010 14:08, nivS skrev:
> Hej NG
>
> Jeg prøver at skrue en SQL (MS SQL Server) sammen som tæller fra en
> tabel og summer fra en anden.
>
> Jeg har 3 tabeller:
>
> Afdeling
> Id, Navn
>
> Computer
> Id, AfdelingsId, Model, Ejer
>
> ComputerSoftware
> ComputerId, SoftwareId, Pris
>
> Det jeg ønsker er en query der giver mig følgende (eksempel):
> Afdeling, AntalComputere, SamletSoftwarePris
> Regnskab, 5, 5000
> HR, 2, 3000
> Salg, 10, 50000
>
> Jeg har prøvet følgende, men resultatet er helt ude i skoven (prisen
> bliver lagt sammen flere gange:
> select Afdeling.Navn, COUNT(Computer.Id), SUM(ComputerSoftware.Pris)
> from Afdeling left join Computer on Computer.AfdelingsId=Afdelinger.Id
> left join ComputerSoftware on Computer.id =
> ComputerSoftware.ComputerId group by Afdeling.Navn
>
> Er der nogen der kan hjælpe mig med at konstruere den korrekte SQL
> select sætning?
>
> Mvh. Hans Milling...

Select Afdeling.Navn,
(select count(Computer.Id) from Computer where
Afdelingsid=Afdelinger.id) as AntalComputere,
(select sum(pris) from ComputerSoftware inner join Computer on
Computer.id=ComputerSoftware.ComputerId where Afdelingsid=Afdelinger.id)
as SamletSoftwarePris
order by navn

Leif

Søg
Reklame
Statistik
Spørgsmål : 177819
Tips : 31980
Nyheder : 719565
Indlæg : 6410971
Brugere : 218912

Månedens bedste
Årets bedste
Sidste års bedste