Avatar billede bbe1379 Nybegynder
08. marts 2005 - 14:29 Der er 7 kommentarer og
3 løsninger

AS og genbrug i samme SQL-streng

G'dag,

Jeg er vedt flytte et system fra Access til SQL Server 2000 og er løbet ind i, at man ikke kan genbruge sine "egne tabeller" defineret med "AS" senere i samme SQL-kald.

Nedenstående fungerer f.eks. fint med access men ikke i SQL-Server:

SELECT
DISTINCT datename(dw,sessionstart) AS stat_weekday,
Count(stat_weekday) AS stat_weekday_counted,
From stat
GROUP BY stat_weekday"

...fordi den ikke kan finde "stat_weekday"

Hvad kan man gøre i stedet for?
Avatar billede lorentsnv Nybegynder
08. marts 2005 - 14:33 #1
Prøv:

SELECT
DISTINCT datename(dw,sessionstart) AS stat_weekday,
Count(stat_weekday) AS stat_weekday_counted
From stat
GROUP BY stat_weekday"

Jeg har fjernet et komme i slutningen af select-sætningen.
Avatar billede bbe1379 Nybegynder
08. marts 2005 - 14:37 #2
Det var bare en smutter fra min ASP-kode. Sætningen er en del længere, så det er ikke derfor.
Avatar billede a1a1 Novice
08. marts 2005 - 14:41 #3
SELECT
DISTINCT datename(dw,sessionstart) AS stat_weekday,
Count(stat_weekday) AS stat_weekday_counted
From stat
GROUP BY datename(dw,sessionstart)

;o)
Avatar billede a1a1 Novice
08. marts 2005 - 14:41 #4
det er vel et svar
Avatar billede bbe1379 Nybegynder
08. marts 2005 - 14:44 #5
Sætningen er temmeligt lang, og det ville blive MEGET omfattende, hvis man ikke kan genbruge...der må da være en måde. Det gælder jo også for Count(stat_weekday)
Avatar billede a1a1 Novice
08. marts 2005 - 15:50 #6
du kan åbentbart ikke bruge "forkortelser" i group by men du kan i order by, det er sjovt at man kan i access, det plejer at være omvendt

Denne virker..:
select count(orderid) as productcount, orderid from [order details] group by orderid order by productcount desc
Avatar billede trer Nybegynder
09. marts 2005 - 10:47 #7
At bruge DISTINCT i en group by er redundant - men skidt - du kan lave en subquery og løse det på den måde.

select stat_weekday, count(stat_weekday_counted ) as stat_weekday_counted
(SELECT datename(dw,sessionstart) AS stat_weekday, stat_weekday AS stat_weekday_counted from STAT) X
group by x.stat_weekday
Avatar billede bbe1379 Nybegynder
13. marts 2005 - 23:34 #8
hey trer, det var bøvlet og lidt langsomt men virkede. Svar - så lukker jeg.
Avatar billede trer Nybegynder
14. marts 2005 - 07:36 #9
Ok, men jeg har ikke fortjent samtlige point - del dem ud mellem os.
Avatar billede bbe1379 Nybegynder
14. marts 2005 - 11:55 #10
oki
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester