/ 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
[MS SQL 7] Group by
Fra : Lars Hoffmann


Dato : 12-02-02 16:26

Foelgende kan jeg ikke faa til at virke i MS SQL server, men virker dog
perfekt i Access, hvad skal jeg aendre?

SELECT count(id), 'hallo' as test
FROM my_table
GROUP BY test

Jeg mangler skal altsaa lave en group by paa en beregnet kolumne.
Med venlig hilsen
Lars Hoffmann



 
 
Nis Jorgensen (12-02-2002)
Kommentar
Fra : Nis Jorgensen


Dato : 12-02-02 18:26

On Tue, 12 Feb 2002 16:25:32 +0100, "Lars Hoffmann"
<lars@intercambiodvd.com> wrote:

>Foelgende kan jeg ikke faa til at virke i MS SQL server, men virker dog
>perfekt i Access, hvad skal jeg aendre?
>
>SELECT count(id), 'hallo' as test
>FROM my_table
>GROUP BY test
>
>Jeg mangler skal altsaa lave en group by paa en beregnet kolumne.

Umiddelbart skulle jeg mene at du bare kan bruge

SELECT count(id), 'hallo' as test
FROM my_table

altsaa uden GROUP BY. Det kraever selvfoelgelig at den beregnede
kolonne er uafhaengigt af de aktuelle data - ikke saerligt
sandsynligt.

Ellers boer dette virke:

SELECT count(id), 'hallo' as test
FROM my_table
GROUP BY 'hallo'

(jeg ville ogsaa forvente at dit foerste forslag virkede, selv om det
ikke foelger SQL-standarden)


--
Nis Jorgensen
Amsterdam

Please include only relevant quotes, and reply below the quoted text. Thanks

Lars Hoffmann (12-02-2002)
Kommentar
Fra : Lars Hoffmann


Dato : 12-02-02 19:09

Nis Jorgensen <nis@dkik.dk> escribió en el mensaje de noticias
viji6u8n660i342mroqbjsg46l84mpb9iu@4ax.com...


> Umiddelbart skulle jeg mene at du bare kan bruge
>
> SELECT count(id), 'hallo' as test
> FROM my_table
>
> altsaa uden GROUP BY. Det kraever selvfoelgelig at den beregnede
> kolonne er uafhaengigt af de aktuelle data - ikke saerligt
> sandsynligt.

Nu var det maaske et daarligt eksempel jeg gav, men pointen er at jeg
ville bruge group by paa en beregnet kolonne.

> Ellers boer dette virke:
>
> SELECT count(id), 'hallo' as test
> FROM my_table
> GROUP BY 'hallo'

Har jeg ogsaa proevet, virker heller ikke. Den siger noget i stil med at
der ikke kan gruperes paa en kolonne der ikke er defineret min select
statement.

Med venlig hilsen
lars Hoffmann



Nis Jorgensen (12-02-2002)
Kommentar
Fra : Nis Jorgensen


Dato : 12-02-02 20:06

On Tue, 12 Feb 2002 19:09:27 +0100, "Lars Hoffmann"
<lars@intercambiodvd.com> wrote:

>Nu var det maaske et daarligt eksempel jeg gav, men pointen er at jeg
>ville bruge group by paa en beregnet kolonne.

>> Ellers boer dette virke:
>>
>> SELECT count(id), 'hallo' as test
>> FROM my_table
>> GROUP BY 'hallo'
>
>Har jeg ogsaa proevet, virker heller ikke. Den siger noget i stil med at
>der ikke kan gruperes paa en kolonne der ikke er defineret min select
>statement.

Jeg tjekkede lige - man kan ganske rigtigt ikke goere saadan ifoelge
SQL-standarden.

Joe Celko giver foelgende workarounds i SQL for Smarties:

SELECT * FROM
(SELECT count(id), 'hallo' as test FROM my_table)
GROUP BY test;

og

SELECT DISTINCT 'hallo' as test,
(SELECT count(id) FROM my_table m1
WHERE m1.'hallo' = m2.'hallo')
FROM my_table m2;

--
Nis Jorgensen
Amsterdam

Please include only relevant quotes, and reply below the quoted text. Thanks

Lars Hoffmann (12-02-2002)
Kommentar
Fra : Lars Hoffmann


Dato : 12-02-02 23:25

Nis Jorgensen wrote in dk.edb.database

> Joe Celko giver foelgende workarounds i SQL for Smarties:
>

Perfekt, det var lige det jeg skulle bruge.

Lars Hoffmann (13-02-2002)
Kommentar
Fra : Lars Hoffmann


Dato : 13-02-02 09:04

Nu var jeg lige lidt for hurtig til at sige at det var det jeg maglede.
Ingen af dem virker..

Nis Jorgensen <nis@dkik.dk> escribió en el mensaje de noticias
v8pi6uggge8s7mnoreckblt2b2t1sg53e1@4ax.com...
> Joe Celko giver foelgende workarounds i SQL for Smarties:
>
> SELECT * FROM
> (SELECT count(id), 'hallo' as test FROM my_table)
> GROUP BY test;

Her siger den "Error near GROUP"


> SELECT DISTINCT 'hallo' as test,
> (SELECT count(id) FROM my_table m1
> WHERE m1.'hallo' = m2.'hallo')
> FROM my_table m2;

Her siger den "Error near hallo"

Jeg saetter stor pris paa din hjaelp da de er ret vitalt for mine SP's
at kunne grupere paa en beregnet kolumne.

Med venlig hilsen
Lars Hoffmann



Peter Lykkegaard (13-02-2002)
Kommentar
Fra : Peter Lykkegaard


Dato : 13-02-02 09:26


"Lars Hoffmann" <lars@intercambiodvd.com> wrote in message
news:a4d6jh$dcq$1@newsreader.mailgate.org...
> Nu var jeg lige lidt for hurtig til at sige at det var det jeg maglede.
> Ingen af dem virker..
>
> Jeg saetter stor pris paa din hjaelp da de er ret vitalt for mine SP's
> at kunne grupere paa en beregnet kolumne.
>
Lav et view med dine beregninger og lav Group By på dit view
På den måde vedligeholder du også dine ét sted frrem for flere SP's

mvh/Peter Lykkegaard



Lars Hoffmann (13-02-2002)
Kommentar
Fra : Lars Hoffmann


Dato : 13-02-02 10:36

Peter Lykkegaard <polonline@hot.mail.com> escribió en el mensaje de
noticias fhpa8.14$eS2.885@news.get2net.dk...
>
> Lav et view med dine beregninger og lav Group By på dit view
> På den måde vedligeholder du også dine ét sted frrem for flere SP's

Hvis det vel og maerke er de samme beregninger jeg laver for flere
forskellige views, hvilket det ikke er. Dette ville resutlarerer i at
jeg skulle lave dobbelt saa mange views som egentlig noedvendigt. Jeg
har dog endlig loest problemet paa foelgende maade, inspireret af hvad
du skrev:

SELECT test, COUNT(Perfil) AS perfil2
FROM (SELECT ' hola' AS test, Perfil
FROM USUARIOS) AS me
GROUP BY test

Faktisk er det jo 2 views, men de er slaaet sammen i en saetning hvilket
for mig goer det en del nemmere.
Tak til baade Peter og Nis for hjaelp og inspiration.
Med venlig hilsen
Lars Hoffmann




Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408927
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste