webForum webForum sponsras med lina och serverplats av Binero AB

Gå tillbaka   webForum > Utveckling > Programmering & Utveckling > Databashanterare & SQL

Databashanterare & SQL Diskussioner om databashanterare och SQL. Exempelvis DML, DDL, MySQL, MS SQL Server samt datamodellering.

Svar
 
Trådverktyg Visningsalternativ
Äldre 2012-08-13, 10:45   #1
brw
Medlem
 
Registrerad: 2000-07-04
Ort: Västerås
Inlägg: 619
Lösningar: 0
Distinct problem

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:
Kod:
'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:
Kod:
'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.
__________________
Troligtvis kommer det att fungera men jag är inte riktigt säker.
brw besöker inte forumet just nu   Svara med citat
Äldre 2012-08-13, 13:44   #2
plekanec
Medlem
 
Registrerad: 2010-12-28
Inlägg: 28
Lösningar: 1
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
plekanec besöker inte forumet just nu   Svara med citat
Äldre 2012-08-13, 14:48   #3
brw
Medlem
 
Registrerad: 2000-07-04
Ort: Västerås
Inlägg: 619
Lösningar: 0
Tack för ditt svar men jag får något felmeddelande som jag inte vet vad jag ska ändra på se nedan fel:

Kod:
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 "
------^
__________________
Troligtvis kommer det att fungera men jag är inte riktigt säker.
brw besöker inte forumet just nu   Svara med citat
Äldre 2012-08-13, 16:36   #4
@nders
Moderator
Marsvin
 
@nderss avatar
 
Registrerad: 2000-06-30
Ort: Nyköping
Inlägg: 26 816
Lösningar: 3132
Av felmeddelandet att döma ser det ut som att du skrivit SQL-frågan rakt av i asp-filen. Du måste ju...
Kod:
SQLgetkunder = "SELECT * FROM......"
, och sedan exekvera.
@nders besöker inte forumet just nu   Svara med citat
Äldre 2012-08-13, 20:58   #5
brw
Medlem
 
Registrerad: 2000-07-04
Ort: Västerås
Inlägg: 619
Lösningar: 0
Ja det är ju så man skäms

Nu fungerar det klockrent!

Tackar!
__________________
Troligtvis kommer det att fungera men jag är inte riktigt säker.
brw besöker inte forumet just nu   Svara med citat
Svar
webForum > Utveckling > Programmering & Utveckling > Databashanterare & SQL

Trådverktyg
Visningsalternativ

Forumregler
Du får inte posta nya trådar
Du får inte posta svar
Du får inte bifoga filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är av
HTML-kod är av

Forumhopp


Alla tider är i GMT +1. Klockan är nu 01:50.


Powered by: vBulletin Version 3.8.6
Copyright © webForum