/ Forside / Teknologi / Udvikling / SQL / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
SQL
#NavnPoint
pmbruun 1704
niller 962
fehaar 730
Interkril.. 701
ellebye 510
pawel 510
rpje 405
pete 350
gibson 320
10  smorch 260
Hjælp til SQL-streng
Fra : Jonas Delfs


Dato : 17-05-01 20:59

Hej,

Jeg har dette meget lille, simple SQL-query:

SELECT COUNT(id) FROM ordrer WHERE status <> 'UA'

MEN, den skal kun tælle én gang pr.værdi i kolonnen "polt_nr".
Hvordan gør jeg dette, uden at skulle kaste mig ud i at lave nye tabeller
etc...

På forhånd tak

--
Mvh. Jonas Delfs
http://delfs.dk



 
 
Morten Winther (17-05-2001)
Kommentar
Fra : Morten Winther


Dato : 17-05-01 21:34


"Jonas Delfs" <nospam@delfs.dk> wrote in message
news:9e1aem$2gg$1@sunsite.dk...
> Hej,
>
> Jeg har dette meget lille, simple SQL-query:
>
> SELECT COUNT(id) FROM ordrer WHERE status <> 'UA'
>
> MEN, den skal kun tælle én gang pr.værdi i kolonnen "polt_nr".
> Hvordan gør jeg dette, uden at skulle kaste mig ud i at lave nye tabeller

SELECT COUNT(id) FROM ordrer WHERE status <> 'UA' GROUP BY polt_nr


/ morten



Lauritz Jensen (17-05-2001)
Kommentar
Fra : Lauritz Jensen


Dato : 17-05-01 22:23

Morten Winther wrote:
>
> "Jonas Delfs" <nospam@delfs.dk> wrote in message
> news:9e1aem$2gg$1@sunsite.dk...
> > SELECT COUNT(id) FROM ordrer WHERE status <> 'UA'
> >
> > MEN, den skal kun tælle én gang pr.værdi i kolonnen "polt_nr".
> > Hvordan gør jeg dette, uden at skulle kaste mig ud i at lave nye tabeller
>
> SELECT COUNT(id) FROM ordrer WHERE status <> 'UA' GROUP BY polt_nr

Den der vil da give antallet rækker, der har samme polt_nr værdi. Mon
ikke det er antallet af unikke polt_nr værdier han vil have?

SELECT COUNT(DISTINCT polt_nr) FROM ordrer WHERE status <> 'UA'

--
Lauritz

Jonas Delfs (18-05-2001)
Kommentar
Fra : Jonas Delfs


Dato : 18-05-01 12:31

"Lauritz Jensen" <lauritz2@hotmail.com> skrev i en meddelelse
news:3B044117.65622DBD@hotmail.com...
> Morten Winther wrote:
> >
> > "Jonas Delfs" <nospam@delfs.dk> wrote in message
> > news:9e1aem$2gg$1@sunsite.dk...
> > > SELECT COUNT(id) FROM ordrer WHERE status <> 'UA'
> > >
> > > MEN, den skal kun tælle én gang pr.værdi i kolonnen "polt_nr".
> > > Hvordan gør jeg dette, uden at skulle kaste mig ud i at lave nye
tabeller
> >
> > SELECT COUNT(id) FROM ordrer WHERE status <> 'UA' GROUP BY polt_nr
>
> Den der vil da give antallet rækker, der har samme polt_nr værdi. Mon
> ikke det er antallet af unikke polt_nr værdier han vil have?

Jow :)

> SELECT COUNT(DISTINCT polt_nr) FROM ordrer WHERE status <> 'UA'

God damned. Jeg vælger at tro at det er fordi jeg ikke havde fået feltet
"polt_nr" tilføjet endnu, at jeg ikke lige havde skrevet det. :)
Du har selvfølgeligt ret, 10 points til dig :)

> --
> Lauritz

--
Mvh. Jonas Delfs
http://delfs.dk



Jonas Delfs (18-05-2001)
Kommentar
Fra : Jonas Delfs


Dato : 18-05-01 16:03

> > SELECT COUNT(DISTINCT polt_nr) FROM ordrer WHERE status <> 'UA'
>
> God damned. Jeg vælger at tro at det er fordi jeg ikke havde fået feltet
> "polt_nr" tilføjet endnu, at jeg ikke lige havde skrevet det. :)
> Du har selvfølgeligt ret, 10 points til dig :)

Der var jeg desværre for hurtig.
tabellen kunne (meget forenklet) se sådan ud::
(nedenstående er kun for én kunde (se kunde_id) resten af kunderne er i
samme tabel)

id - kunde_id - aktivitets_id - status - polt_nr
1 1 1 A 1
2 1 3 U 1
3 1 15 U 2
4 1 5 A 2

Grunden til at der er 2 forsk. polt_nr ved samme kunde, er at en kunde kan
stå for flere forskellige arrangementer, og alle med polt_nr 1 hører til den
første, alle med polt_nr 2, til den anden etc...

Det jeg vil tælle er polt_nr. Men kun rækker hvor status ikke er 'UA', og
kun een pr. polt_nr.
Jeg forestiller mig at det er en GROUP BY der skal til, men lige præcist DEN
klausul er jeg ikke så habil med.

Håber det var forståeligt. På forhånd tak

> > --
> > Lauritz
>
> --
> Mvh. Jonas Delfs
> http://delfs.dk

--
Mvh. Jonas Delfs
http://delfs.dk



Lauritz Jensen (19-05-2001)
Kommentar
Fra : Lauritz Jensen


Dato : 19-05-01 15:19

Jonas Delfs wrote:
>
> Det jeg vil tælle er polt_nr. Men kun rækker hvor status ikke er
> 'UA', og kun een pr. polt_nr.

Jeg er slet ikke sikker på at jeg forstår (måske er det i fustration
over at være gået glip af 10 point), for med den beskrivelse skulle
sql'en, da være den rigtige. Kan du f.eks. ikke give et eksempel på data
med tilhørende resultat.

--
Lauritz

Jonas Delfs (20-05-2001)
Kommentar
Fra : Jonas Delfs


Dato : 20-05-01 13:19

"Lauritz Jensen" <lauritz2@hotmail.com> skrev i en meddelelse
news:3B0680CA.A769C8ED@hotmail.com...
> Jonas Delfs wrote:
> >
> > Det jeg vil tælle er polt_nr. Men kun rækker hvor status ikke er
> > 'UA', og kun een pr. polt_nr.
>
> Jeg er slet ikke sikker på at jeg forstår (måske er det i fustration
> over at være gået glip af 10 point)

*G*

> , for med den beskrivelse skulle
> sql'en, da være den rigtige. Kan du f.eks. ikke give et eksempel på data
> med tilhørende resultat.

Øv. Det synes jeg lige at jeg havde gjort. Eksemplet i forrige besked skulle
give 2, men en kunde kan jo også have oprettet 25 arrangementer, og der kan
være rækker hvor status er 'UA' som jo så ikke skal tælles med. (sidst
nævnte sørger den jo allerede for)

Altså: mit oprindeligt query ville give 4, men i det resultat er der jo 2
med polt_nr 1 og 2 med polt_nr 2. Og jeg vil kun have én pr. polt_nr

Spørg endeligt igen!

> --
> Lauritz

--
Mvh. Jonas Delfs
http://delfs.dk

"Kun en tåbe rydder op. En geni behersker kaos"



Jonas Delfs (20-05-2001)
Kommentar
Fra : Jonas Delfs


Dato : 20-05-01 13:27

Glem det.
Min fejl - jeg kan godt se at dit svar er korrekt.

Jeg havde bare ikke mulighed for at teste det, og det så umiddelbart
forkert/utilstrækkeligt ud i mit hoved.

Takker

--
Mvh. Jonas Delfs
http://delfs.dk

"Kun en tåbe rydder op. En geni behersker kaos"



Jakob Nilsson (20-05-2001)
Kommentar
Fra : Jakob Nilsson


Dato : 20-05-01 13:27


"Jonas Delfs" <nospam@delfs.dk>
> Det jeg vil tælle er polt_nr. Men kun rækker hvor status ikke er 'UA',
og
> kun een pr. polt_nr.

Jeg må indrømme jeg også er blevet lidt forvirret over hvad der egentlig
skal tælles

Men her er et forsøg:

SELECT SUM(Tabel.Antal)
FROM
(SELECT COUNT (DISTINCT polt_nr) AS Antal
FROM order_table
WHERE status <> 'UA'
GROUP BY kunde_id) Tabel

Der der findes i inner-queryen er antallet af unikke polt numre pr.
kunde_id, dernæst summeres dette antal i den ydre query. Erstat Tabel og
Antal med det du nu synes de skal hedde

Mvh.
Jakob





Søg
Reklame
Statistik
Spørgsmål : 177517
Tips : 31968
Nyheder : 719565
Indlæg : 6408638
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste