Chris Cools
Gebruiker
- Lid geworden
- 19 okt 2008
- Berichten
- 152
Hallo,
tot hiertoe maakte ik mijn query's altijd in MS acces met de query builder, en door query op query te bouwen duurt het voor sommige query's enorm lang eer ze gelopen hebben.
Daarom probeer ik me nu de sql taal eigen te maken in de hoop dat ik de query's dan efficiënter (lees sneller) kan maken.
Mijn vraag:
ik heb een standaard tabel met te selecteren kleuren "dbo.t_colour" en een tabel met vertalingen van de kleuren in 4 verschillende talen "dbo.d_colour".
via sql kan ik een lijst maken waarbij onder mekaar voor kleur 1 de 4 vertalingen staan, dan voor kleur 2 enzoverder.
Maar ik wil nu een lijst van de verschillende kleuren, met daarachter telkens een kolom voor elke taal.
dus: kleur, nederlands, frans, engels, duits, en dus voor elke kleur maar 1 rij ipv 1 rij voor elke vertaling.
In MS acces maakte ik dus eerst een query die me telkens id_colour en een taal gaf, zo had ik er 1 voor elke taal.
Dan maakte ik een 5de query met de verschillende kleuren en sleepte ik de vorige querys erbij en linkte die dan allemaal aan het unieke veld id_colour.
Ik vermoed dat dat in SQL in 1 statement kan?
met wat zoeken op het net kwam ik tot onderstaande:
[SQL]select k.id_colour, k.colour_code, k.active, c.id_colour,c.id_language, c.description , c.active,
(select c.description from dbo.d_colour where c.id_language = 1 )as vertaling_eng
from dbo.t_colour k join dbo.d_colour C on k.id_colour = c.id_colour
where k.active = 1[/SQL]
Maar dan krijg ik de melding dat de subquery meer dan 1 waarde teruggeeft en krijg dus geen resultaat.
Kan iemand me op het juiste pad zetten naar de oplossing of aangeven waar ik hierover info zou kunnen vinden om verder te geraken?
alvast bedankt!
mvg,
Chris
tot hiertoe maakte ik mijn query's altijd in MS acces met de query builder, en door query op query te bouwen duurt het voor sommige query's enorm lang eer ze gelopen hebben.
Daarom probeer ik me nu de sql taal eigen te maken in de hoop dat ik de query's dan efficiënter (lees sneller) kan maken.
Mijn vraag:
ik heb een standaard tabel met te selecteren kleuren "dbo.t_colour" en een tabel met vertalingen van de kleuren in 4 verschillende talen "dbo.d_colour".
via sql kan ik een lijst maken waarbij onder mekaar voor kleur 1 de 4 vertalingen staan, dan voor kleur 2 enzoverder.
Maar ik wil nu een lijst van de verschillende kleuren, met daarachter telkens een kolom voor elke taal.
dus: kleur, nederlands, frans, engels, duits, en dus voor elke kleur maar 1 rij ipv 1 rij voor elke vertaling.
In MS acces maakte ik dus eerst een query die me telkens id_colour en een taal gaf, zo had ik er 1 voor elke taal.
Dan maakte ik een 5de query met de verschillende kleuren en sleepte ik de vorige querys erbij en linkte die dan allemaal aan het unieke veld id_colour.
Ik vermoed dat dat in SQL in 1 statement kan?
met wat zoeken op het net kwam ik tot onderstaande:
[SQL]select k.id_colour, k.colour_code, k.active, c.id_colour,c.id_language, c.description , c.active,
(select c.description from dbo.d_colour where c.id_language = 1 )as vertaling_eng
from dbo.t_colour k join dbo.d_colour C on k.id_colour = c.id_colour
where k.active = 1[/SQL]
Maar dan krijg ik de melding dat de subquery meer dan 1 waarde teruggeeft en krijg dus geen resultaat.
Kan iemand me op het juiste pad zetten naar de oplossing of aangeven waar ik hierover info zou kunnen vinden om verder te geraken?
alvast bedankt!
mvg,
Chris