NAVIGATIE

Freetime overzicht
Zoeken


  RUBRIEKEN

FAQ / Help
Wat mag niet?
WZL Wedstrijden
WZL Chat
WZL Toolbar
WZL Statistieken
WZL leden
WZL shop
E-cards

RSS

Fun-feed
Babe-feed
Stud-feed

Een groot aantal pokerrooms geven de mogelijkheid om poker te spelen op internet en geld te storten via het veilige iDeal betaalsysteem.
Overzicht » Computer » Programmeren » sql probleem
Onderaan pagina
dannyboy 3.329
wzl-lid
Sinds 31/5/2005
T: 108 R: 883
25/3/2008 - 12:14u | Quote
Even de situatie schetsen:

Ik heb een database met gegevens over medische producten.
Ik heb een tabel producten die de naam, gebruik, vervalbaarheid (of het product kan vervallen) etc van de producten bijhoudt.
Ik heb een tabel voorraad_v die het aantal vervalbare producten in de voorraad bijhoudt (bv: perdolan - 10 pillen - 02/2009)
Ik heb een tabel voorraad_nv die het aantal niet vervalbare producten in de voorraad bijhoudt (bv: windel 5cm - 30 stuks)
De reden dat ik deze 2 laatste tabellen apart heb, is dat ik bij voorraad_nv enkel het product als primaire sleutel heb (elk product kan maar 1 keer voorkomen)
en bij voorraad_v heb ik het product en de vervaldatum als gecombineerde primaire sleutel (er kunnen bv 10 pillen van product A op 03/2009 vervallen, maar hetzelfde product A kan ook 15 pillen hebben die op 05/2009 vervallen)
niet vervalbare producten kunnen niet in de voorraad_v tabel komen want dan zou de vervaldatum NULL zijn en dat mag niet in een primaire sleutel.

Nu wil ik een query hebben die me de inhoud van voorraad_v en voorraad_nv samen weergeeft.
bv:
perdolan - 10 pillen - 02/2009
windel 5cm - 30 stuks - NULL
perdolan - 12 pillen - 03/2009

Ik heb niet direct een idee over hoe deze query eruit moet komen te zien.

PS: de voorbeelden zijn niet zoals ze letterlijk in mijn tabel staan, ik werk met product_id enzo, maar ik vond dit duidelijker als voorbeeld. Dus liefst gene zever over slechte normalisatie. Ik moet gewoon een query hebben die de inhoud van 2 ongeveer dezelfde tabellen samen zet.
D3ton8oR
Stella-man
Sinds 15/10/2003
T:32 - R:1581
25/3/2008 - 13:20u | Quote
aangezien in bepaalde gevallen het nut van normalisatie mij totaal ontgaat zou ik al zeker nie gezeverd hebben daarover

Uw select om uw 2 tabellen in 1 overzicht terug te geven zal zoiets zijn dan (wsl nog wel een join naar product bij elke select als je met ID werkt ipv naam):

SELECT naam_v, aantal_v, datum_v FROM voorraad_v
UNION ALL
SELECT naam, aantal_nv, null FROM voorraad_nv


De beperkingen waar je 't over hebt (qua datum en zo) leg je normaal op tabelniveau en niet op query-niveau, dus daar zou je normaal geen rekening moeten mee houden in je select.

Edit: met joins zal het iets dergelijks geven dus:

SELECT prod_naam, aantal_v, datum_v
FROM Producten
LEFT OUTER JOIN Voorraad_v
ON prod_id = v_prod_id
UNION ALL
SELECT prod_naam, aantal_nv, null
FROM Producten
LEFT OUTER JOIN Voorraad_nv
ON prod_id = nv_prod_id


Laatst aangepast door D3ton8oR op 26/03/2008 9:48:21u (2x aangepast)
dannyboy 3.329
wzl-lid
Sinds 31/5/2005
T:108 - R:883
26/3/2008 - 11:47u | Quote
D3ton8oR schreef:
aangezien in bepaalde gevallen het nut van normalisatie mij totaal ontgaat zou ik al zeker nie gezeverd hebben daarover

Uw select om uw 2 tabellen in 1 overzicht terug te geven zal zoiets zijn dan (wsl nog wel een join naar product bij elke select als je met ID werkt ipv naam):

SELECT naam_v, aantal_v, datum_v FROM voorraad_v
UNION ALL
SELECT naam, aantal_nv, null FROM voorraad_nv


De beperkingen waar je 't over hebt (qua datum en zo) leg je normaal op tabelniveau en niet op query-niveau, dus daar zou je normaal geen rekening moeten mee houden in je select.

Edit: met joins zal het iets dergelijks geven dus:

SELECT prod_naam, aantal_v, datum_v
FROM Producten
LEFT OUTER JOIN Voorraad_v
ON prod_id = v_prod_id
UNION ALL
SELECT prod_naam, aantal_nv, null
FROM Producten
LEFT OUTER JOIN Voorraad_nv
ON prod_id = nv_prod_id

dat lijkt me het proberen waard. ik had nog nooit van een UNION ALL statement gehoord
D3ton8oR
Stella-man
Sinds 15/10/2003
T:32 - R:1581
26/3/2008 - 11:55u | Quote
't Is nochtans een heel handig ding!

Edit: ge hebt ook een gewone "UNION" (zonder de All dus).. Da's meer een join-achtige bewerking maar met extra voorwaarden dacht ik (kolommen moeten zelfde type zijn of zo, weet het nie just meer). Moet maar eens opzoeken

Laatst aangepast door D3ton8oR op 26/03/2008 11:56:38u (1x aangepast)
dannyboy 3.329
wzl-lid
Sinds 31/5/2005
T:108 - R:883
26/3/2008 - 16:20u | Quote
getest en het werkt uitstekend. merci
 
Bovenaan pagina