webForumDet fria alternativet

Access 2003: Group by vid replace

Databaser & SQL

3 svar · 352 visningar · startad av Mattias Nordin

Medlem sedan dec. 20051 056 inlägg
Frågan#1

Hur gör jag för att köra group by på följande? Jag har sett att det går då jag har hittat en liknande fråga, men jag får inte till det.

 sql = "SELECT replace(replace(SalesAreaName.AreaName,' Direct',''),' reseller','') AS[FixedAreaName]    "&_
" FROM (SalesArea " &_
" inner JOIN SalesAreaName on SalesAreaName.SalesAreaName_ID = SalesArea.TerritoryAreaName_ID) "&_
" WHERE AreaType = 'Territory' "&_
" AND SalesArea.Inactive = 0 "&_
" ORDER BY FixedAreaName "

Output ser ut som:

Japan Pacific
Japan Pacific
America East
America East

och jag vill få listan att visa...

Japan Pacific
American East

:stud

Medlem sedan dec. 200012 464 inlägg
#2
select distinct ...
Medlem sedan dec. 20051 056 inlägg
#3

Najs. Nedan funkar...

 sql = "SELECT DISTINCT replace(replace(SalesAreaName.AreaName,' Direct',''),' reseller','') AS[FixedAreaName]    "&_
" FROM (SalesArea " &_
" inner JOIN SalesAreaName on SalesAreaName.SalesAreaName_ID = SalesArea.TerritoryAreaName_ID) "&_
" WHERE AreaType = 'Territory' "&_
" AND SalesArea.Inactive = 0 "&_
" ORDER BY FixedAreaName "

Vad är skillnaden mellan distinct och group by?

Medlem sedan dec. 19996 721 inlägg
#4

DISTINCT = returnera unika rader
GROUP BY = samla ihop de rader som har samma värden i de angivna GROUP BY-kolumnerna och utför beräkningar på dessa grupperingar, såsom MAX, MIN, COUNT, AVG...

275 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
140 ms — deklarationer (db)
0 ms — hämta statistik (cache)
131 ms — hämta tråd, inlägg och bilagor (db)
142 ms — ändringar (db)