Hejsa
Prøv lige om flg forespørgsel virker:
SELECT Lower(Komponent) AS mineKomponenter, SUM(Pris)
FROM "Komponent.db"
GROUP BY mineKomponenter
Kan du godt skrive en Group By UDEN af have en Distinct-operator?!
Det skulle gerne give flg resultat (hvis man kigger på de tupler dy har i
dit oprindelige indlæg):
mineKomponenter| Pris
--------------------------|---------
lampe | 5
kontakt | 10
Hvis den forespørgsel gå godt så prøv at udvide den med en "ORDER BY
mineKomponenter"..
Mvh.
Mikael
"Pølle" <No@Name.dk> wrote in message news:akcphv$c36$1@sunsite.dk...
> Hej Michael
>
> Det er dejligt, som du følger sagen op.
>
> Dit forslag:
> SELECT DISTINCT Lower(Komponent) AS mineKomponenter
> FROM "Komponent.db"
> ORDER BY mineKomponenter
> virket fint og giver resultater af record: aaa, AAA, bbb
> aaa
> bbb
> hvorimod
> SELECT Lower(Komponent) AS mineKomponenter
> FROM "Komponent.db"
> ORDER BY mineKomponenter
> gi'r resultatet:
> aaa
> aaa
> bbb
> "DISTINCT " er nødvendigt, for at f.eks. "aaa" forekommer 1 gang.
> -------------------------------------------------------------
> Nedenstående:
> SELECT DISTINCT Komponent
> FROM "Komponent.db"
> GROUP BY Komponenter
> ORDER BY Komponenter
> 'kører' fint - OG
> SELECT DISTINCT Lower(Komponent) AS mineKomponenter
> FROM "Komponent.db"
> ORDER BY mineKomponenter
> er også OK - MEEEN
> SELECT DISTINCT Lower(Komponent) AS mineKomponenter
> FROM "Komponent.db"
> GROUP BY mineKomponenter <= eneste ændring
> ORDER BY mineKomponenter
> gi'r fejlmeddelelsen: "Invalid field name" og der er jo nødvendigt med
GROUP
> BY, når SUM(Pris) tilføjes
>
> Mvh
> Pølle
> ------------------------------- OLD ---------------------------------
> "Mikael Rune Jensen" <mrj@cs.auc.dk> skrev i en meddelelse
> news:3d69c5a8$0$234$ba624c82@nntp03.dk.telia.net...
> > Hejsa
> >
> > > Hvorimod
> > > SELECT DISTINCT Lower(Komponent)
> > > FROM "Komponent.db"
> > > Order BY Komponent
> > >
> > > eller
> > > SELECT DISTINCT Lower(Komponent)
> > > FROM "Komponent.db"
> > > Order BY Lower(Komponent)
> > >
> > > IKKE virker
> >
> > Hmm.. Begge ovenstående forespørgsler lever op til SQL92 standarden..
> > Prøv at skrive flg. forespørgsle istedet (aner ikke om det virker i din
> DB,
> > men i "alm." DB'ere virker det ;)
> >
> > SELECT DISTINCT Lower(Komponent) AS mineKomponenter
> > FROM "Komponent.db"
> > ORDER BY mineKomponenter
> >
> > Mvh.
> > Mikael
> >
> >
> >
> >
> > >
> > >
> > >
> > >
> > > "Mikael Rune Jensen" <mrj@cs.auc.dk> skrev i en meddelelse
> > > news:3d69263c$0$1441$ba624c82@nntp02.dk.telia.net...
> > > > Hejsa
> > > >
> > > > > > Ønsker man så at summen (Pris) vil SQL'en se således ud:
> > > > > > SELECT DISTINCT Komponent, SUM(Pris)
> > > > > > FROM "Komponent.db"
> > > > > > GROUP BY Komponent
> > > > > > ORDER BY Komponent
> > > >
> > > > > Har du prøvet uden distintct? Har du prøvet select distinct
> > > > > lower(komponent), sum(pris)?
> > > >
> > > >
> > > > Distinct skulle være ganske unødvendig i og med at du grupperer på
> > > > Komponent. Hvilken database benytter du?
> > > > Distinct er en af de "dyre operationer" (O(n log n)) og kan drastisk
> > > > reducere performance af din forespørgsel - særligt hvis det er et
knap
> > så
> > > > prof. DBMS du benytter, da optimizeren så ikke er helt så klog :)
> > > >
> > > > Mvh
> > > > Mikael Rune Jensen
> > > >
> > > > --
> > > > Mikael Rune Jensen
> > > > Department of Computer Science
> > > > Aalborg University
> > > >
http://www.cs.auc.dk/~mrj
> > > >
> > > >
> > >
> > >
> >
> >
>
>