[SQL] Wat doet deze query?

Pagina: 1
Acties:

  • hneel
  • Registratie: Maart 2001
  • Laatst online: 09:16

hneel

denkt er het zijne van

Topicstarter
Ik heb een tabel waarin o.a. de velden "Ordernumber" en "Invoiced" voorkomen. Per order zijn er meerdere regels met hetzelfde ordernummer en "invoiced" is een boolean die bij elke regel true of false kan zijn.

Ik wil nu een overzicht van alle orders waarbij er regels zijn waarvan "Invoiced" op false staat. Daarvoor heb ik de volgende query bedacht, maar ik weet niet zeker of die doet wat ik wil?

SQL:
1
2
3
SELECT DISTINCT R."Ordernumber"
FROM Regist.DB R
WHERE R."Invoiced" = false


Doet dit wat ik wil? Bij welke regels kijkt hij dan naar het "Invoiced" veld? Bij allemaal die door "DISTINCT" gevangen worden of alleen de eerste? Wat als er in een reeks met hetzelfde ordernummer zowel regels met true en false voor invoiced voor komen?

Het is btw in Borland CBuilder in combinatie met Paradox.

[ Voor 255% gewijzigd door hneel op 30-03-2006 16:03 ]


  • justmental
  • Registratie: April 2000
  • Niet online

justmental

my heart, the beat

Geef mij alle unieke ordernummers uit 'regist.db' waarbij invoiced false is.

Who is John Galt?


  • P_de_B
  • Registratie: Juli 2003
  • Niet online
Ik weet niet of 'false' geaccepteerd wordt door je database, maar verder doet dit wat je vraagt.

Alle ordernummers tonen waarvan minimaal 1 regel op invoiced = false staat.

Oops! Google Chrome could not find www.rijks%20museum.nl


  • Reinier
  • Registratie: Februari 2000
  • Laatst online: 10:05

Reinier

\o/

hneel schreef op donderdag 30 maart 2006 @ 16:00:
Wat als er in een reeks met hetzelfde ordernummer zowel regels met true en false voor invoiced voor komen?
Dan geeft hij alleen de regels met false terug, en daarvan vervolgens alleen de unieke ordernummers. De regels met true spelen helemaal geen rol.

Het lijkt erop dat dit wel zo'n beetje doet wat jij wilt. Maar waarom probeer je het niet uit?

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 22-02 00:22

Janoz

Moderator Devschuur®

!litemod

De where wordt nog voor de distict uitgevoerd. Je krijgt gewoon een lijst met alle ordernummers waar invoice true is. Vervolgens neem je met distinct alleen de unieke ordernummers.

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


Verwijderd

Je zou echter toch verwachten dat ordernummers vrij uniek zijn dus die distinct zou wel eens overbodig kunnen zijn...

  • Reinier
  • Registratie: Februari 2000
  • Laatst online: 10:05

Reinier

\o/

Janoz schreef op donderdag 30 maart 2006 @ 16:05:
Je krijgt gewoon een lijst met alle ordernummers waar invoice true is.
False juist... toch :?

  • P_de_B
  • Registratie: Juli 2003
  • Niet online
Verwijderd schreef op donderdag 30 maart 2006 @ 16:07:
Je zou echter toch verwachten dat ordernummers vrij uniek zijn dus die distinct zou wel eens overbodig kunnen zijn...
Nee, hij haalt het uit de detailregels. Daarin zal ordernummer waarschijnlijk vaker voorkomen. Immers, op detailregelniveau wordt bijgehouden of er een factuur is gemaakt.

Oops! Google Chrome could not find www.rijks%20museum.nl


Verwijderd

P_de_B schreef op donderdag 30 maart 2006 @ 16:11:
[...]


Nee, hij haalt het uit de detailregels. Daarin zal ordernummer waarschijnlijk vaker voorkomen. Immers, op detailregelniveau wordt bijgehouden of er een factuur is gemaakt.
*zet bril op en leest OP nog een keer*

  • hneel
  • Registratie: Maart 2001
  • Laatst online: 09:16

hneel

denkt er het zijne van

Topicstarter
Janoz schreef op donderdag 30 maart 2006 @ 16:05:
De where wordt nog voor de distict uitgevoerd.
Ah, ok. Dan doet hij dus wat ik wil.
(Als het andersom was geweest had ik het ws anders op moeten lossen).
Pagina: 1