![]() |
[database] meerdere waarden in een kolom??
gegroet mensen
ik moet voor informatica een database maken. Hij is zo goed als af en nu ben ik bezig met een paar querys om het te testen en ik ben erachter gekomen dat hij meerdere waardes in een kolom leest als één waarde. bijv: in de kolom taal staan bij sommige rijen meerdere talen Ik had eerst gewoon dit ingevuld: engels, frans Toen ik zag dat hij dit als één waarde leest en niet als engels EN frans, heb ik nog een paar dingen geprobeerd zoals: 'engels, 'frans' "engels", "frans" "engels" and "frans" maar bij alles leest hij dit als één waarde. dus bij een query om bijv welke verschillende talen krijg je dan frans, engels maar ook "engels, frans" |
ik kan het probleem niet genoeg analyseren zonder meer info over de betreffende tabel en enkele invoeren. de query en de uitvoer
|
het moet dus een database van een dvdtheek voorstellen
met erin oa de tabel exemplaren en daarin de kolommen: filmnr, exemplaarnr, regio code, taal, ondertiteling, geluid, beeld, dvd-type,status Nu komen er bij taal en ondertiteling meerdere dingen in voor, zoals: TAAL: japans | engels, frans | koreaans, frans | cantonees | ONDERTITELING: nederlands | nederlands, frans | nederlands, frans | nederlands " | " stelt dus een rij voor, dus ik heb de invoer van 4 rijen uit die twee kolommen gegeven. en me query was: SELECT taal, count(*) FROM exemplaren GROUP BY taal; De bedoeling van deze query is om de taal te laten zien die het meest voorkomt. Hij is nog niet helemaal af, maar dat gaat moeilijk als hij twee waardes als een leest. dit komt er dus uit :mad: taal Expr1001 "cantonees", "engels" 1 "Duits", "Engels" 1 "Engels" and ""Frans" 2 "Engels", "Frans", "Pools" 1 "koreaans", "frans" 1 cantonees 2 engels 4 japans 9 |
aparte tabel maken voor de taal, zo kun je makkelijker meerdere talen bij 1 videoband opslaan. Dat lijkt me de beste oplossing (als ik zo het probleem begrijp :))
|
je maakt een grapje .. right?? :(
btw, ik heb nog een vraagje als je het niet erg vind: dit is een query en de bedoeling is om te laten zien hoeveel films er op een dag zijn geleend. SELECT titel, count(*) as aantal_films FROM films WHERE filmnr in (select filmnr from uitleningen where Data_uit = #5-12-2003#) GROUP BY titel; 5-12-2003 is precies zoals het in die kolom staat, maar hij geeft helemaal niets aan, noppes, nada |
Nee dat was geen grapje, maar wat is er erg aan?
nieuwe table taalzooi met attributen filmnr en taal en over die query..bij mij is het teken # niet bekend in sql op die manier :confused: kijk eerst eens of dit een result oplevert: select filmnr from uitleningen where Data_uit = #5-12-2003# |
dat levert ook niks op, ik heb het nog met "10-12-2003" en 10-12-2003 geprobeerd. Met de eerste kreeg ik een foutmelding en de tweede leverde gewoon geen resultaten op.
en het ligt ook niet aan de datum, want ik heb echt gekeken of het voorkwam en meerdere data gebruikt en een nieuwe tabel maken is opzich niet zoveel werk, maar dan moet ik de strokendiagram enz aanpassen. |
doe eens:
Select Data_uit FROM uitleningen en kijk wat je dan precies als uitvoer krijgt |
Na een beetje uitproberen ben ik erachter gekomen dat het niet #10-12-2003# maar #10-dec-2003# is. :confused:
Dit is dan de correcte query: select films.titel,uitleningen.filmnr,count(uitleningen.filmnr) as aantal_films_gehuurd from films,uitleningen where Data_uit = #05-dec-2003# and films.filmnr=uitleningen.filmnr group by films.titel,uitleningen.filmnr nu nog een probleem vinden voor dat meerdere waarden in een tabel invoeren. |
mensen, het probleem is al opgelost.
ik heb een query gemaakt die de eerste query als een tabel gebruikt. (y) bedankt voor de hulp |
Alle tijden zijn GMT +1. Het is nu 05:19. |
Powered by vBulletin® Version 3.8.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.