|
| Summering i SQL Fra : Ukendt |
Dato : 10-05-08 20:52 |
|
Hej.
Jeg klokker igen i det mht. SQL - g ved faktisk ikke, om det kan lade sig
gøre.
Øvelsen er, at jeg skal bruge data fra 3 tabeller på en gang.
Jeg har følgende tabeller:
tblKonto
ID, pk
Budget
tblVareliste
ID, pk
Vare
Pris
tblPosteringer
ID, pk
KontoID, fk
VareID, fk
Antal
og jeg har brug for at hente følgende data og vise i en grid
KONTO, BUDGET, SAMLET PRIS, RESTBUDGET
eks.
tblKonto
ID Budget
1 1.000
2 10.000
tblVareliste
ID vare pris
1 Testvare 50
2 Eksempelvare 100
tblPosteringer
ID KontoID VareID antal
1 1 1 10
2 2 1 20
3 1 2 30
4 2 2 40
5 2 1 50
Ønsket data/grid
Konto budget samlet pris restbudget
1 1.000 3.500 -2.500
2 10.000 7.500 2.500
| |
Kristian Damm Jensen (10-05-2008)
| Kommentar Fra : Kristian Damm Jensen |
Dato : 10-05-08 23:03 |
|
Michael Sørensen wrote:
> Hej.
>
> Jeg klokker igen i det mht. SQL - g ved faktisk ikke, om det kan lade
> sig gøre.
>
> Øvelsen er, at jeg skal bruge data fra 3 tabeller på en gang.
>
> Jeg har følgende tabeller:
>
> tblKonto
> ID, pk
> Budget
>
> tblVareliste
> ID, pk
> Vare
> Pris
>
> tblPosteringer
> ID, pk
> KontoID, fk
> VareID, fk
> Antal
>
> og jeg har brug for at hente følgende data og vise i en grid
>
> KONTO, BUDGET, SAMLET PRIS, RESTBUDGET
<snip>
Det er nu tredje gang inden for kort tid, at du stiller et relativt banalt
spørgsmål om SQL. Prøv at købe en lærebog.
select k.ID, k.budget, sum(p.antal*v.pris) as "samlet pris", k.budget -
sum(p.antal*v.pris) as "restbudget"
from konto k
join posteriner p
on k.ID = p.kontoID
join vareliste v
on v.ID = p.vareID
group by k.ID, k.budget
--
Venlig hilsen /Best regards
Kristian Damm Jensen
| |
Ukendt (11-05-2008)
| Kommentar Fra : Ukendt |
Dato : 11-05-08 00:36 |
|
"Kristian Damm Jensen" <dNOamSPm.uAMsenet@kristiandamm.dk> skrev i en
meddelelse news:48261bf3$0$15876$edfadb0f@dtext01.news.tele.dk...
> Michael Sørensen wrote:
> Det er nu tredje gang inden for kort tid, at du stiller et relativt banalt
> spørgsmål om SQL. Prøv at købe en lærebog.
God pinse til dig også. Men du skal have tak allgievel.
Jeg har skam en lærebog. Både en bog om databaser samt et hæfte om SQL. Om
det er bogen og hæftet eller mig, der ikke mener, at det er banalt, vil jeg
lade blande uden om diskussionen.
> select k.ID, k.budget, sum(p.antal*v.pris) as "samlet pris", k.budget -
> sum(p.antal*v.pris) as "restbudget"
> from konto k
> join posteriner p
> on k.ID = p.kontoID
> join vareliste v
> on v.ID = p.vareID
> group by k.ID, k.budget
Nå nu lærte jeg, hvad jeg havde brug for og håber dermed ikke, at jeg er
nødt til at spørge og forstyrre mere.
De bedste pinsehilsner
Michael
| |
Ukendt (11-05-2008)
| Kommentar Fra : Ukendt |
Dato : 11-05-08 11:59 |
|
"Kristian Damm Jensen" <dNOamSPm.uAMsenet@kristiandamm.dk> skrev i en
meddelelse news:48261bf3$0$15876$edfadb0f@dtext01.news.tele.dk...
> Michael Sørensen wrote:
>> Hej.
>>
>> Jeg klokker igen i det mht. SQL - g ved faktisk ikke, om det kan lade
>> sig gøre.
>>
>> Øvelsen er, at jeg skal bruge data fra 3 tabeller på en gang.
>>
>> Jeg har følgende tabeller:
>>
>> tblKonto
>> ID, pk
>> Budget
>>
>> tblVareliste
>> ID, pk
>> Vare
>> Pris
>>
>> tblPosteringer
>> ID, pk
>> KontoID, fk
>> VareID, fk
>> Antal
>>
>> og jeg har brug for at hente følgende data og vise i en grid
>>
>> KONTO, BUDGET, SAMLET PRIS, RESTBUDGET
> <snip>
>
> Det er nu tredje gang inden for kort tid, at du stiller et relativt banalt
> spørgsmål om SQL. Prøv at købe en lærebog.
>
> select k.ID, k.budget, sum(p.antal*v.pris) as "samlet pris", k.budget -
> sum(p.antal*v.pris) as "restbudget"
> from konto k
> join posteriner p
> on k.ID = p.kontoID
> join vareliste v
> on v.ID = p.vareID
> group by k.ID, k.budget
Jeg vender lige tilbage, da din kode kun viser de rækker i tblKonto, hvor
der er posteringer på, mens de klasser, der er oprettede, men hvor der ingen
posteringer er tilknyttet ikke vises.
Og der skulle gerne fremkomme en liste med alle konti uanset om der er
posteringer eller ej og samtidig beregningen, som jeg fik hjælp til sidst,
ved de koknti, hvor der er posteringer.
Jeg har forsøgt at lede både på www og hæftet om SQL.
Kan det lade sig gøre, vil jeg meget gerne have hjælp til det - eller
henvisning til relevant bog/hæfte/webside, hvor det kan læres, da mine egne
referencer ikke har haft relevans til at løse mit problem.
| |
Gert Krabsen (11-05-2008)
| Kommentar Fra : Gert Krabsen |
Dato : 11-05-08 14:03 |
|
Michael Sørensen skrev:
> "Kristian Damm Jensen" <dNOamSPm.uAMsenet@kristiandamm.dk> skrev i en
> meddelelse news:48261bf3$0$15876$edfadb0f@dtext01.news.tele.dk...
>> Michael Sørensen wrote:
>>> Hej.
>>>
>>> Jeg klokker igen i det mht. SQL - g ved faktisk ikke, om det kan lade
>>> sig gøre.
>>>
>>> Øvelsen er, at jeg skal bruge data fra 3 tabeller på en gang.
>>>
>>> Jeg har følgende tabeller:
>>>
>>> tblKonto
>>> ID, pk
>>> Budget
>>>
>>> tblVareliste
>>> ID, pk
>>> Vare
>>> Pris
>>>
>>> tblPosteringer
>>> ID, pk
>>> KontoID, fk
>>> VareID, fk
>>> Antal
>>>
>>> og jeg har brug for at hente følgende data og vise i en grid
>>>
>>> KONTO, BUDGET, SAMLET PRIS, RESTBUDGET
>> <snip>
>>
>> Det er nu tredje gang inden for kort tid, at du stiller et relativt banalt
>> spørgsmål om SQL. Prøv at købe en lærebog.
>>
>> select k.ID, k.budget, sum(p.antal*v.pris) as "samlet pris", k.budget -
>> sum(p.antal*v.pris) as "restbudget"
>> from konto k
>> join posteriner p
>> on k.ID = p.kontoID
>> join vareliste v
>> on v.ID = p.vareID
>> group by k.ID, k.budget
>
> Jeg vender lige tilbage, da din kode kun viser de rækker i tblKonto, hvor
> der er posteringer på, mens de klasser, der er oprettede, men hvor der ingen
> posteringer er tilknyttet ikke vises.
>
> Og der skulle gerne fremkomme en liste med alle konti uanset om der er
> posteringer eller ej og samtidig beregningen, som jeg fik hjælp til sidst,
> ved de koknti, hvor der er posteringer.
>
Prøv at ændre fra JOIN til LEFT JOIN - det burde hjælpe..
> Jeg har forsøgt at lede både på www og hæftet om SQL.
>
> Kan det lade sig gøre, vil jeg meget gerne have hjælp til det - eller
> henvisning til relevant bog/hæfte/webside, hvor det kan læres, da mine egne
> referencer ikke har haft relevans til at løse mit problem.
>
>
| |
Kristian Damm Jensen (11-05-2008)
| Kommentar Fra : Kristian Damm Jensen |
Dato : 11-05-08 21:15 |
|
Gert Krabsen wrote:
> Michael Sørensen skrev:
>> "Kristian Damm Jensen" <dNOamSPm.uAMsenet@kristiandamm.dk> skrev i en
>> meddelelse news:48261bf3$0$15876$edfadb0f@dtext01.news.tele.dk...
<snip>
>>> select k.ID, k.budget, sum(p.antal*v.pris) as "samlet pris",
>>> k.budget - sum(p.antal*v.pris) as "restbudget"
>>> from konto k
>>> join posteriner p
>>> on k.ID = p.kontoID
>>> join vareliste v
>>> on v.ID = p.vareID
>>> group by k.ID, k.budget
>>
>> Jeg vender lige tilbage, da din kode kun viser de rækker i tblKonto,
>> hvor der er posteringer på, mens de klasser, der er oprettede, men
>> hvor der ingen posteringer er tilknyttet ikke vises.
>>
>> Og der skulle gerne fremkomme en liste med alle konti uanset om der
>> er posteringer eller ej og samtidig beregningen, som jeg fik hjælp
>> til sidst, ved de koknti, hvor der er posteringer.
>>
> Prøv at ændre fra JOIN til LEFT JOIN - det burde hjælpe..
Jep. Hvis du vel at mærke gør det i begge tilfælde.
--
Venlig hilsen /Best regards
Kristian Damm Jensen
| |
|
|