Toon posts:

[Oracle8i] query vraagstuk

Pagina: 1
Acties:

Verwijderd

Topicstarter
select * from cat;

TABLE_NAME TABLE_TYPE
------------------------------ -----------
ARTIKEL TABLE
ARTIKELSAMENSTELLING TABLE
ASSORTIMENT VIEW
LEVERANCIER TABLE
LEVERANCIERCOMPONENT TABLE
LEVERANCIERKAART VIEW
ORDERLEVERDATUM TABLE
ORDERNUMMER TABLE

Voor school moeten we een opdracht maken. Het gaat allemaal goed. Maar nu moeten we in Oracle 8i een selectie maken van een 'artikelkaart'. Het volgende scenario:

Een artikel komt van een leverancier (logisch). Maar als we artikeln assembleren ontstaat er een nieuw artikel. Wat moeten we nu krijgen in een view. Hetvolgende... of je ziet een artikel met de bijbehorende samengestelde artikelnummers, of je ziet een artikel, die niet is samengesteld, en dus de leveranciersinformatie van wordt geshowd. Wacht, ik zal het nog wat verduidelijken met een een voorbeeld.

Een eerste Artikelkaart

ARTIKELNR OMSCHRIJVING PRIJS
2388945 HD SET MT 245, CACHECONTR 1163.10

WORDT GELEVERD DOOR:
NR NAAM CONTACT TELEFOON ARTCODE

(hier komt niks)

BESTAAT UIT:
ARTIKELNR AANTAL
4566716 1
4566740 1
4566754 5
2388991 1



Maar een tweede keer zou het er zo uit kunnen zien:




ARTIKELNR OMSCHRIJVING PRIJS
4566759 Centronics-kabel gewoon 29.00

WORDT GELEVERD DOOR:
NR NAAM CONTACT TELEFOON ARTCODE
9 Hardware shop Linda 01234567890 C-Cablen
10 E-huis Sytske 02246577801 CK/M/F/N

BESTAAT UIT:
ARTIKELNR AANTAL


(hier komt nu dus niks)




We komen er nog niet echt uit. We zitten te denken aan NVL of UNION.

ps. het is geen optie de databse te veranderen

Bij voorbaat Dank

  • Goodielover
  • Registratie: November 2001
  • Laatst online: 18-08 11:34

Goodielover

Only The Best is Good Enough.

Klinkt als twee keer een outer join. Een keer naar leverancier en 1 keer naar onderdeel

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

dusty

Celebrate Life!

De eerste stap naar een juiste query is door wat je wilt hebben in een vraag vorm te stellen.

Formuleer je vraag eens in de trend van:


Geef van een bepaalde artikel alle.....[vul aan]

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


Verwijderd

Topicstarter
Jongens, bedankt! We zijn eruit. Na een uurtje 'pielen' is het toch nog goedgekomen.

Twee unions.. en het werkt :)

  • Goodielover
  • Registratie: November 2001
  • Laatst online: 18-08 11:34

Goodielover

Only The Best is Good Enough.

Post het statement eens voor je onvoldoende krijgt.
Voor mijn gevoel gaat het ook zonder Union.

  • -=Arjan=-
  • Registratie: Februari 2000
  • Laatst online: 15-05 18:37
Op donderdag 14 maart 2002 11:26 schreef Goodielover het volgende:
Post het statement eens voor je onvoldoende krijgt.
Voor mijn gevoel gaat het ook zonder Union.
Psies, dan trek ik 'm nog even door Oracle Expert hier, wordt ie nog getuned voor je :)

I think there is a world market for maybe five computers ... six tops. Thomas Watson, chairman IBM, 1943


Verwijderd

Topicstarter
heren....hier de query (union)

select a.artikelnummer AS artikelnummer
, a.artikelomschrijving AS omschrijving
, a.artikelprijs AS prijs
, l.leveranciernummer AS nr
, l.leveranciernaam AS naam
, l.contactpersoon AS contact
, l.LEVERANCIERTELEFOONNUMMER AS telefoon
, lc.leveranciercomponentomschrijvi AS artcode
,0 AS artikelnr
,0 AS aantal
from artikel a
, leverancier l
, leveranciercomponent lc
, artikelsamenstelling s
Where a.artikelnummer = s.artikel
AND s.artikel = lc.artikel
UNION
select a.artikelnummer
, a.artikelomschrijving
, a.artikelprijs
, 0
, null
, null
, null
, null
, s.artikelonderdeel
, s.aantal
from artikel a
, artikelsamenstelling s
where a.artikelnummer = s.artikel;

  • Goodielover
  • Registratie: November 2001
  • Laatst online: 18-08 11:34

Goodielover

Only The Best is Good Enough.

Ik dacht het al.
In de eerste query staat leverancier in de from, maar daar doe je niets mee, dat is dus niet handig.
Het tweede deel kan als outer join worden opgenomen in de eerste query en gaat alles in 1 keer goed.
Maak dus in de eerste query de join naar leverancier en samenstelling een outer join en de hele query doet het in 1 keer.

Verwijderd

Topicstarter
Goodielover, ie bint mien moat! :)

  • Goodielover
  • Registratie: November 2001
  • Laatst online: 18-08 11:34

Goodielover

Only The Best is Good Enough.

Op zaterdag 13 april 2002 20:09 schreef samba het volgende:
Goodielover, ie bint mien moat! :)
Aj dat noe wat eerder hadde zegt. Wah hej al die tied e'doan dan? (1 moand noh mien post)
Pagina: 1