[SQL + ASP] Distinct wil niet?

Pagina: 1
Acties:

  • Zaagmans
  • Registratie: Januari 2000
  • Laatst online: 16-07 21:13
Hoi,

ik heb een SQL probleem.
Ik heb 2 tabellen, namelijk:
gebruiker en verkoop.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
Verkoper
---------
VolledigeNaam
VerkoperNaam
...

Product
-------
ID
WinkelID
Productnaam
VerkoperNaam
Datum

Daar wil ik graag een query op loslaten en die luidt als volgt:
code:
1
"SELECT P.ID, P.WINKELID, P.PRODUCTNAAM, V.VOLLEDIGENAAM, P.DATUM FROM PRODUCT as P, VERKOPER as V WHERE P.WINKELID = " & Request.QueryString("WinkelID") & " AND P.VERKOPERNAAM = V.VERKOPERNAAM"

WinkelID (uit de request.querystring) krijg ik mee doormiddel van een form-link van een voorgaande pagina.

Nu krijg ik dus het volgende terug:
code:
1
2
3
4
5
ID WINKELID PRODUCTNAAM VOLLEDIGENAAM DATUM
1    3    Vla     Pietje Puk   01-01-01
4    2    Brinta     Jan Klaassen 02-02-02
5    2    Brinta     Jan Klaassen 02-02-02
8    7    Joghurt    Henk Tank    03-03-03

Nu wil ik dus maar 3 records laten zien (aangezien ID=4 en ID=5 identiek zijn, behalve het ID). Ok, dan laat ik dus ID weg uit mijn query en dan doe ik een DISTINCT zou je zeggen, maar dat werkt ook niet. :?

Iemand een idee??

- Ruud


  • disjfa
  • Registratie: April 2001
  • Laatst online: 12-05 15:11

disjfa

be

dat is idd eritant, maar als je hier een distinct op gaat gooien krijg je hetzelfde terug, omdat de recordsets verschillend zijn.

hij ordent nl op recordsets, en niet op kolommen.

heb ik ook een keer problemen mee gehad. opgelost door een querie xtra :)

disjfa - disj·fa (meneer)
disjfa.nl


  • tomato
  • Registratie: November 1999
  • Niet online
Niet zo mooi om een char veld als FK te gebruiken.

  • Zaagmans
  • Registratie: Januari 2000
  • Laatst online: 16-07 21:13
Op woensdag 07 november 2001 15:26 schreef tomato het volgende:
Niet zo mooi om een char veld als FK te gebruiken.
Jah, maar ik wil de volledige naam van de verkoper hebben

- Ruud


  • Zaagmans
  • Registratie: Januari 2000
  • Laatst online: 16-07 21:13
Op woensdag 07 november 2001 15:22 schreef disjfa het volgende:
dat is idd eritant, maar als je hier een distinct op gaat gooien krijg je hetzelfde terug, omdat de recordsets verschillend zijn.

hij ordent nl op recordsets, en niet op kolommen.

heb ik ook een keer problemen mee gehad. opgelost door een querie xtra :)
Hoe ging die query dan?

- Ruud


  • raptorix
  • Registratie: Februari 2000
  • Laatst online: 17-02-2022
Waarom gebruik je wel winkelid maar geen verkoperid?

  • Zaagmans
  • Registratie: Januari 2000
  • Laatst online: 16-07 21:13
Op woensdag 07 november 2001 15:57 schreef raptorix het volgende:
Waarom gebruik je wel winkelid maar geen verkoperid?
Omdat ik PER WINKEL wil zien welke verkoper op welke dag welk produkt heeft verkocht. :)
snappie?

- Ruud


  • dusty
  • Registratie: Mei 2000
  • Laatst online: 21-02 00:06

dusty

Celebrate Life!

Op woensdag 07 november 2001 16:32 schreef Zaagmans het volgende:
Omdat ik PER WINKEL wil zien welke verkoper op welke dag welk produkt heeft verkocht. :)
snappie?
Dat is niet een geldige reden waarom je geen verkoperID gebruikt.

Back In Black!
"Je moet haar alleen aan de ketting leggen" - MueR


  • raptorix
  • Registratie: Februari 2000
  • Laatst online: 17-02-2022
Op woensdag 07 november 2001 16:32 schreef Zaagmans het volgende:

[..]

Omdat ik PER WINKEL wil zien welke verkoper op welke dag welk produkt heeft verkocht. :)
snappie?
Je snapt ook wat een join is?

  • Zaagmans
  • Registratie: Januari 2000
  • Laatst online: 16-07 21:13
Op woensdag 07 november 2001 16:46 schreef raptorix het volgende:

[..]

Je snapt ook wat een join is?
Blijkbaar weet jij het beter dan mij, in ieder geval gaan we nu een beetje afdwalen, ik zou graag een beetje op weg geholpen worden zodat ik het probleem kan oplossen, ok?

- Ruud


  • Zaagmans
  • Registratie: Januari 2000
  • Laatst online: 16-07 21:13
Op woensdag 07 november 2001 16:36 schreef dusty het volgende:

[..]

Dat is niet een geldige reden waarom je geen verkoperID gebruikt.
Nou wel, omdat ik in die voorgaande pagina (die naar deze wijst) alleen het WinkelID KAN weten en dus daarmee kan vergelijken, het verkoperID kan ik dan geeneens achterhalen, maar dat is niet echt boeiend. Ik wil gewoon distinct kunnen doen, maar blijkbaar wil dat niet.

- Ruud


  • raptorix
  • Registratie: Februari 2000
  • Laatst online: 17-02-2022
Uh hoe je daar heen navigeert staat in principe los van het probleem, we proberen je beetje de goede weg in te duwen door aan te geven dat het handiger is om ook een verkoperid te gebruiken, dus vraag van mij, en ook van dusty is wat je overweging is om in je table een naam als pk te gebruiken.

  • Zaagmans
  • Registratie: Januari 2000
  • Laatst online: 16-07 21:13
Op woensdag 07 november 2001 17:09 schreef raptorix het volgende:
Uh hoe je daar heen navigeert staat in principe los van het probleem, we proberen je beetje de goede weg in te duwen door aan te geven dat het handiger is om ook een verkoperid te gebruiken, dus vraag van mij, en ook van dusty is wat je overweging is om in je table een naam als pk te gebruiken.
Aha, nu weet ik wat jullie dwars zit. De Verkoper tabel is totaal niet compleet, natuurlijk zit daar een VerkoperID in. Maar die is verder niet van toepassing voor de query, omdat ik die niet nodig heb voor mijn ASP page.

Ik heb alleen die 4 regels die ik altijd uitkomst had nodig, maar dan een Distinct erover heen zodat de middelste 2 regels wegvallen.
ID weglaten zeg je dan, omdat die verschillend is, maar na dat geprobeerd te hebben werkt het nog steeds niet. :?

- Ruud


  • raptorix
  • Registratie: Februari 2000
  • Laatst online: 17-02-2022
Ik heb je datamodel eens nagebouwt maar eigenlijk is het ook heel logisch, immers 1 product kan verkocht worden door meerdere winkels, dus de query die je wilt doen daar zie ik eigenlijk het nut niet zo van in.

Om je datamodel goed te krijgen zou ik doen:

Maak een table verkopen aan met :

ProductID,WinkelID,Aantal of eventueel
ProductID,WinkelID,VerkoperID,Aantal

Ik denk dat dat een stuk zinniger is.

  • raptorix
  • Registratie: Februari 2000
  • Laatst online: 17-02-2022
Onthoud ook dat je geen informatie in een table gaat zetten die apart hoort te staan, waarom zou je in godsnaam een verkoper in een producttable zetten? Dit zou hoogstens kunnen wanneer deze persoon de enigste is die dit product verkoopt, en de verkoper dus een soort "eigenschap" is van het product.

Werk trouwens ook altijd met ID's nu zul je daar misschien nog niet 100% het nut van inzien maar als je modellen van uitgebreider worden zul je snel merken dat je in problemen komt, daarnaat is het uit oogpunt van snelheid ook beter.

  • Flard
  • Registratie: Februari 2001
  • Laatst online: 04-09 09:53
Of ga 's aan de slag met subqueries.

Op het moment ben ik ff niet zo into SQL (lange dag gehad), maar ik denk dat je er zelf ook wel uit kunt komen. Toch?

  • tomato
  • Registratie: November 1999
  • Niet online
Flard: Of ga 's aan de slag met subqueries.
Ja laten we dat doen |:(

  • raptorix
  • Registratie: Februari 2000
  • Laatst online: 17-02-2022
Op woensdag 07 november 2001 22:21 schreef Flard het volgende:
Of ga 's aan de slag met subqueries.

Op het moment ben ik ff niet zo into SQL (lange dag gehad), maar ik denk dat je er zelf ook wel uit kunt komen. Toch?
Voor wat zou hij een subquery nodig hebben?

  • Janoz
  • Registratie: Oktober 2000
  • Nu online

Janoz

Moderator Devschuur®

!litemod

Waarom zijn er eigenlijk 2 precies dezelfde producten met verschillende ID's?

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


  • dusty
  • Registratie: Mei 2000
  • Laatst online: 21-02 00:06

dusty

Celebrate Life!

Op woensdag 07 november 2001 17:07 schreef Zaagmans het volgende:
Nou wel, omdat ik in die voorgaande pagina (die naar deze wijst) alleen het WinkelID KAN weten en dus daarmee kan vergelijken, het verkoperID kan ik dan geeneens achterhalen, maar dat is niet echt boeiend. Ik wil gewoon distinct kunnen doen, maar blijkbaar wil dat niet.
sorry HHAHAHAHHHAHHAHHAHA...

Uhm.. volgens mij zou een cursus SQL voor jou wel van pas kunnen komen.

Leer eens om te gaan met databases, Leer te normaliseren.

Met een juist database model zouden jouw problemen een stuk minder vaak voorkomen. Maar wat weet IK nou van databases right? Ga lekker zo door zoals je nu bezig bent. Jij gaat het echt helemaal maken in de IT!

Back In Black!
"Je moet haar alleen aan de ketting leggen" - MueR


  • dusty
  • Registratie: Mei 2000
  • Laatst online: 21-02 00:06

dusty

Celebrate Life!

Op woensdag 07 november 2001 23:03 schreef raptorix het volgende:
Voor wat zou hij een subquery nodig hebben?
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
select 
  ID,
  WinkelID,
  Productnaam,
  Verkopernaam,
  Datum 
from 
  Winkels 
where 
  ID in (
    select ID from Winkels where WinkelID in (
    select distinct (WinkelID) from Winkels
    )
  )

:+

Back In Black!
"Je moet haar alleen aan de ketting leggen" - MueR


  • Crazy D
  • Registratie: Augustus 2000
  • Laatst online: 08:12

Crazy D

I think we should take a look.

:D :D

Mwah gelukkig is er pas een paar keer een goeie tip gegeven, en wordt dat lekker genegeerd (of ligt de topic starter nog lekker te :z ? :))

Exact expert nodig?


  • Zaagmans
  • Registratie: Januari 2000
  • Laatst online: 16-07 21:13
Op donderdag 08 november 2001 09:27 schreef dusty het volgende:

[..]

sorry HHAHAHAHHHAHHAHHAHA...

Uhm.. volgens mij zou een cursus SQL voor jou wel van pas kunnen komen.

Leer eens om te gaan met databases, Leer te normaliseren.

Met een juist database model zouden jouw problemen een stuk minder vaak voorkomen. Maar wat weet IK nou van databases right? Ga lekker zo door zoals je nu bezig bent. Jij gaat het echt helemaal maken in de IT!
Bedankt voor uw almachtige informatie meneer de ik-herken-meteen-een-goede-IT-er! |:(
Ik heb die database niet ontworpen en ik ga er ook niet aanzitten ook, aangezien er ook via Delphi wordt gebruik gemaakt van de database. :Z
Ik heb ook niet de identieke benamingen overgenomen in dit voorbeeld, maar ff iets fictiefs verzonnen, wat wel hetzelfde eruitziet.

Heh nogmaals erg bedankt voor je duidelijke uitleg. Maar naar mijnsinziens was deze reactie totaal onnodig. Als mijn vraag onder jouw 'niveau' ligt, reageer er dan AUB niet meer op, lmd!

- Ruud


  • Zaagmans
  • Registratie: Januari 2000
  • Laatst online: 16-07 21:13
Op woensdag 07 november 2001 22:17 schreef raptorix het volgende:
Ik heb je datamodel eens nagebouwt maar eigenlijk is het ook heel logisch, immers 1 product kan verkocht worden door meerdere winkels, dus de query die je wilt doen daar zie ik eigenlijk het nut niet zo van in.

Om je datamodel goed te krijgen zou ik doen:

Maak een table verkopen aan met :

ProductID,WinkelID,Aantal of eventueel
ProductID,WinkelID,VerkoperID,Aantal

Ik denk dat dat een stuk zinniger is.
Thanks ik ga er eens ff mee aan de slag!

- Ruud


  • Zaagmans
  • Registratie: Januari 2000
  • Laatst online: 16-07 21:13
Op donderdag 08 november 2001 09:40 schreef CrazyD_at_work het volgende:
:D :D

Mwah gelukkig is er pas een paar keer een goeie tip gegeven, en wordt dat lekker genegeerd (of ligt de topic starter nog lekker te :z ? :))
Heh ;) ik ben net wakker :P

- Ruud


  • raptorix
  • Registratie: Februari 2000
  • Laatst online: 17-02-2022
Op donderdag 08 november 2001 09:30 schreef dusty het volgende:

[..]
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
select 
  ID,
  WinkelID,
  Productnaam,
  Verkopernaam,
  Datum 
from 
  Winkels 
where 
  ID in (
    select ID from Winkels where WinkelID in (
    select distinct (WinkelID) from Winkels
    )
  )

:+
Met een hammer past alles zullen we maar zeggen ;)

  • Zaagmans
  • Registratie: Januari 2000
  • Laatst online: 16-07 21:13
Op donderdag 08 november 2001 10:22 schreef raptorix het volgende:

[..]

Met een hammer past alles zullen we maar zeggen ;)
Hihi, toch beter een hamer, dan een moker, of niet? :Y)

- Ruud


  • dusty
  • Registratie: Mei 2000
  • Laatst online: 21-02 00:06

dusty

Celebrate Life!

Op donderdag 08 november 2001 10:10 schreef Zaagmans het volgende:
[...]
Heh nogmaals erg bedankt voor je duidelijke uitleg. Maar naar mijnsinziens was deze reactie totaal onnodig. Als mijn vraag onder jouw 'niveau' ligt, reageer er dan AUB niet meer op, lmd!
De vraag lag niet onder niveau, jouw antwoord lag onder niveau.

Back In Black!
"Je moet haar alleen aan de ketting leggen" - MueR


  • Zaagmans
  • Registratie: Januari 2000
  • Laatst online: 16-07 21:13
Dank voor al uw hulp!
Ik ben erachter dat het DATUM veld (bevat bijv: 29-10-2001 11:25:15 )voor de nodige problemen zorgt. Als ik alleen op datum een distinct doe pakt ie het niet.
Probleem is gevonden, nu nog 'ff' een oplossing, alvast bedankt! :P

- Ruud


Verwijderd

...Ik heb die database niet ontworpen en ik ga er ook niet aanzitten ook...
en
re: raptorix: ..Thanks ik ga er eens ff mee aan de slag!..
Ehm? Wel of niet :)

  • Zaagmans
  • Registratie: Januari 2000
  • Laatst online: 16-07 21:13
Erm B-)

- Ruud

Pagina: 1