Toon posts:

[Access 2003] Geavanceerde query

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik zit met een vraag waar ik zo snel even niet uit kan komen... om de vraag duidelijk te maken heb ik een zeer simpele database gemaakt met daarin mijn probleem.

Ik heb de volgende tabellen
Afbeeldingslocatie: http://www.xs4all.nl/~grijo/.tnet/access/tabellen.JPG

Ik gebruik de volgende query
Afbeeldingslocatie: http://www.xs4all.nl/~grijo/.tnet/access/query.JPG

De eigenschappen van de query
Afbeeldingslocatie: http://www.xs4all.nl/~grijo/.tnet/access/queryeigenschappen.JPG

Zoals te zien is komt Piet met sofinummer 25 zowel in de Nederlandse als de Belgische database voor. Maar blijkbaar zijn ze in Nederland vergeten zijn website in te vullen. Nu mijn probleem...

Hoe kan ik er voor zorgen dat mijn query ook kijkt in de Belgische database of daar misschien een overkomstig sofinummer is, zo ja of de website daar wel is ingevuld. Wanneer dit dan het geval is dat hij de website van de Belgische database overneemt in de query.

Moet je dit met een SQL statement oplossen? Weet even niet hoe ik dit moet oplossen...

  • sanfranjake
  • Registratie: April 2003
  • Niet online

sanfranjake

Computers can do that?

(overleden)
welke versie van Access gebruik je?

Mijn spoorwegfotografie
Somda - Voor en door treinenspotters


Verwijderd

Topicstarter
sanfranjake schreef op maandag 30 juli 2007 @ 16:23:
welke versie van Access gebruik je?
Access 2003

  • riva91
  • Registratie: Februari 2005
  • Laatst online: 23-10-2024
Deze query werkt één kant op weliswaar (ik heb de tabelletjes iets anders genoemd):

code:
1
2
3
SELECT klant_nl.klant_id, klant_nl.sofi, klant_nl.naam, klant_nl.adres, klant_nl.plaats,
IIf(klant_nl.email Is Null,klant_be.email,klant_nl.email) AS email
FROM klant_nl LEFT JOIN klant_be ON klant_nl.klant_id = klant_be.klant_id;


Is dit de bedoeling?

  • Stefke
  • Registratie: December 2000
  • Laatst online: 25-06 13:21
Een betere opzet (die het allemaal wat gemakkelijker maakt) is als je alle klanten in 1 tabel zet, met een kenmerk (veld) [land]. Je zult op deze manier nog wel vaker tegen dit probleem aanlopen.

Volgens de werkwijze van normalisatie is je databasestructuur niet optimaal.

(een directere oplossing zou kunnen zijn een samenvoegquery te maken die de records uit beide tabellen in één query weergeeft)

[ Voor 19% gewijzigd door Stefke op 30-07-2007 17:20 ]


Verwijderd

Topicstarter
Even wat info... wij hebben een zeer geavanceerd administratie pakket gebasseerd op Access.. hiermee probeer ik een OSCommerce site te koppelen. Dit lukt op het moment al aardig, maar ik liep tegen dit probleem aan. ik heb de code van riva91 iets aangepast zodat het wel werkte..
code:
1
2
SELECT Klant_Nederland.Klantid, Klant_Nederland.sofinummer, Klant_Nederland.Naam, Klant_Nederland.Adres, Klant_Nederland.Plaats, IIf(Klant_Nederland.Website Is Null,Klant_Belgie.Website,Klant_Nederland.Website) AS Website
FROM Klant_Nederland LEFT JOIN Klant_Belgie ON Klant_Nederland.sofinummer = Klant_Belgie.sofinummer;

Thanks! Ik denk dat ik hier wel wat mee kan
Pagina: 1