webForumDet fria alternativet

Distinct problem

Databaser & SQL

4 svar · 589 visningar · startad av brw

Medlem sedan juli 2000619 inlägg
Frågan#1

Hej

jag försöker plocka ut värden som distinct och vad jag förstår så appliceras distinct på hela sqlfrågan dvs på alla värden som hämtas.

Jag har en tabell med beställningar som ser ut som följer.

Id
kundnr
namn
adress
postnummer
ort
land
datum_reg
datum_best

Mitt problem eller rättare sagt vad jag vill är att plocka ut kundnr och adress på mina kunder men enbart 1 rad per kund. Som det är nu så ligger samma kund på flera rader beroende på hur många gånger den har beställt.

Kör jag bara följande:

'SQLgetkunder = "Select Distinct kundnr FROM utskick order by kundnr asc"

Då får jag ju en rad med kundens kundnummer men så fort jag lägger på följande:

'SQLgetkunder = "Select Distinct kundnr, namn, adress, postnummer, ort, land, datum_reg, datum_best FROM utskick order by datum_best DESC"

Då får jag dubletter så det skriker om det. Vissa kanske kommer med 10 gånger och andra bra 2 gånger.

Hur ska jag bära mig åt för att hämta adressen på den senaste beställningen men varje kund ska bara komma med 1 gång?

Tacksam för hjälp.

Medlem sedan dec. 201027 inlägg
#2

SELECT * FROM (
SELECT kundnr, namn, adress, postnummer, ort, land, MAX(datum_reg) AS datum_reg, MAX(datum_best) AS datum_best
FROM utskick
group by kundnr,namn,adress,postnummer,ort,land) AS drv
ORDER BY datum_best DESC

Medlem sedan juli 2000619 inlägg
#3

Tack för ditt svar men jag får något felmeddelande som jag inte vet vad jag ska ändra på se nedan fel:

Feltyp:
Kompileringsfel i Microsoft VBScript (0x800A03FD)
'Case' förväntas.
getcust2.asp, line 19, column 7
SELECT * FROM (SELECT kundnr, namn, adress, postnummer, ort, land, MAX(datum_reg) AS datum_reg, MAX(datum_best) AS datum_best FROM utskick group by kundnr,namn,adress,postnummer,ort,land) AS drv ORDER BY datum_best DESC "
------^
Medlem sedan juni 200032 967 inlägg
#4

Av felmeddelandet att döma ser det ut som att du skrivit SQL-frågan rakt av i asp-filen. Du måste ju...

SQLgetkunder = "SELECT * FROM......"

, och sedan exekvera.

Medlem sedan juli 2000619 inlägg
#5

Ja det är ju så man skäms :)

Nu fungerar det klockrent!

Tackar!

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