Hallo Reginald, Allereerst bedankt voor je antwoord, ik ben echt nog een nul wat SQL betreft en gerelateerde tabellen daar heb ik mij ook nog nooit in hoeven verdiepen. Ik heb de mogelijke SQL constructie geprobeerd in de volgende notatie: CASE value WHEN [ "Partnernaam" =-1] THEN "Voornaam" || ' ' || "Tussenvoegsel" || ' ' || "Achternaam" ||' & ' || "Voornaam partner" || ' ' || "Tussenvoegsel partner" || ' ' || "Achternaam partner" [WHEN [ "Partner?" =-1] THEN "Voornaam" || ' & ' || "Voornaam partner" || ' ' || "Tussenvoegsel" || ' ' || "Achternaam" ] [ELSE Voornaam" || ' ' || "Tussenvoegsel" || ' ' || "Achternaam"] END AS Namen,
CASE WHEN ["Partnernaam" =-1] THEN "Voornaam" || ' ' || "Tussenvoegsel" || ' ' || "Achternaam" ||' & ' || "Voornaam partner" || ' ' || "Tussenvoegsel partner" || ' ' || "Achternaam partner" [WHEN ["Partner?" =-1] THEN "Voornaam" || ' & ' || "Voornaam partner" || ' ' || "Tussenvoegsel" || ' ' || "Achternaam" ...] [ELSE "Voornaam" || ' ' || "Tussenvoegsel" || ' ' || "Achternaam"] END AS Namen, Maar bij beide kreeg ik weer een syntax error, ik ben bang dat ik dit dus niet voor elkaar ga krijgen. Om de database om te bouwen zoals jij dat voorstelde wil ik best proberen maar, wat ik al eerder zei, relaties in databases hoefde ik nooit te gebruiken en heb ik (de keer dat ik het tegen kwam) ook niet helemaal begrepen. Zou jij me hier mee kunnen helpen als ik een test database toestuur met mijn huidige structuur? Groetjes Kees -----Oorspronkelijk bericht----- Van: Reginald Ricquier [mailto:[email protected]] Verzonden: zondag 5 juli 2009 15:38 Aan: [email protected] Onderwerp: Re: [gebruikers] Dubbel when lukt niet Hallo Kees, Hierna de mogelijke constructies in SQL: CASE value WHEN [compare_value] THEN result [WHEN [compare_value] THEN result ...] [ELSE result] END CASE WHEN [condition] THEN result [WHEN [condition] THEN result ...] [ELSE result] END The first version returns the result where value=compare_value. The second version returns the result for the first condition that is true. If there was no matching result value, the result after ELSE is returned, or NULL if there is no ELSE part. Enkele opmerkingen: - je databasetabel is veel te uitgebreid en biedt weinig flexibiliteit met betrekking tot de gegevens. Probeer je tabellen te beperken tot essentiële gegevens en creëer bijkomende gerelateerde tabellen voor de andere gegevens bvb. 'Contacten' voor telefoonnummers, emailadressen, ... (onbeperkt aantal per lid) ... - voor de conversie zoals je dit wilt, doe je dit best via een programma dat je schrijft, hetzij stapsgewijs (bvb. eerst al de records waar Partnernaam = Waar). Dit zal sneller gaan dan via een dergelijke gecompliceerde SQL-instructie. Groeten, Reginald Kees Verhagen schreef: > Hallo, > > > > Ik ben al tijden een database van Access naar oOo Base aan het > converteren maar er is 1 ding wat me dwars zit en niet wil lukken. Wat > ik wil is als met 2 ja/nee velden (Partner? En Partnernaam) bepalen hoe > de namen genoteerd moeten worden dus eigenlijk zo: > > > > Als *Partnernaam *is gelijk aan *Ja(-1) *dan is de notatie * Voornaam > Tussenvoegsel Achternaam & Voornaam partner Tussenvoegsel partner > Achternaam partner* anders wil ik weten of er wel een partner is > *Partner?* Is gelijk aan *Ja(-1)* dan moet de notatie worden *Voornaam & > Voornaam partner Tussenvoegsel Achternaam* als dat allemaal niet waar is > wordt de notatie simpel *Voornaam Tussenvoegsel Achternaam.* > > * * > > Ik dacht dus met het volgende de boel op te lossen maar daar trapt Base > niet in en geeft een syntax error: > > > > TRIM ( BOTH FROM CASE WHEN "Partnernaam"=-1 THEN "Voornaam" || ' ' || > "Tussenvoegsel" || ' ' || "Achternaam" ||' & '|| "Voornaam partner" || > ' ' || "Tussenvoegsel partner" || ' ' || "Achternaam partner" ELSE WHEN > "Partner?"=-1 THEN "Voornaam" |||' & '|| "Voornaam partner" | ' ' || > "Tussenvoegsel" || ' ' || "Achternaam" ELSE "Voornaam" || ' ' || > "Tussenvoegsel" || ' ' || "Achternaam" END ) AS "Namen", > > > > Heeft iemand een idee hoe ik dit dan wel moet oplossen? Ik zet de hele > SQL Query waarin dit ingebouwd moet worden hier onder voor het idee: > > > > SELECT "ID", "Barnummer", "Voornaam", "Voorletters", "Tussenvoegsel", > "Achternaam", TRIM ( BOTH FROM CONCAT( "Voornaam" || ' ' || > "Tussenvoegsel" || ' ' || "Achternaam" ) ) AS "Naam", "Geb datum", > DATEDIFF( 'dd', "Geb datum", CURRENT_DATE ) / 365 AS "Leeftijd", > "Partner?", "Voornaam partner", "Voorletters partner", "Tussenvoegsel > partner", "Achternaam partner", TRIM ( BOTH FROM CASE WHEN "Partner?"=-1 > THEN "Voornaam" || ' ' || "Tussenvoegsel" || ' ' || "Achternaam" ||' & > '|| "Voornaam partner" || ' ' || "Tussenvoegsel partner" || ' ' || > "Achternaam partner" ELSE "Voornaam" || ' ' || "Tussenvoegsel" || ' ' > || "Achternaam" END ) AS "Volledige namen", "Geb datum partner", > DATEDIFF( 'dd', "Geb datum partner", CURRENT_DATE ) / 365 AS "Leeftijd > partner", "Partnernaam", "Adres", "Postcode", "Woonplaats", TRIM ( BOTH > FROM CONCAT( "Postcode" || ' ' || "Woonplaats" ) ) AS "Postcode + > Woonplaats", "Telefoon", "Telefoon 2", "E-mail", "E-mail partner", > "Lidnummer", "Lid sinds", "Digitaal Wilgenblad", "Wilgenblad zenden", > "Corvee", "Bestuursfunctie", "Functie", "EHBO", "Donateur", "Kinderen?", > "Voornaam kind 1", "Voorletters kind 1", "Tussenvoegsel kind 1", > "Achternaam kind 1", "E-mail kind 1", "Geb datum kind 1", "Voornaam kind > 2", "Voorletters kind 2", "Tussenvoegsel kind 2", "Achternaam kind 2", > "Geb datum kind 2", "E-mail kind 2", "Voornaam kind 3", "Voorletters > kind 3", "Tussenvoegsel kind 3", "Achternaam kind 3", "Geb datum kind > 3", "E-mail kind 3", "Voornaam kind 4", "Voorletters kind 4", > "Tussenvoegsel kind 4", "Achternaam kind 4", "Geb datum kind 4", "E-mail > kind 4", "Voornaam kind 5", "Voorletters kind 5", "Tussenvoegsel kind > 5", "Achternaam kind 5", "Geb datum kind 5", "E-mail kind 5" FROM > "HLB_leden" AS "HLB_leden" WHERE "Bestuursfunctie" = 0 AND "EHBO" = 0 > AND "Donateur" = 0 ORDER BY "Achternaam" ASC > > */ /* > > Alvast bedankt voor het meedenken, het zijn de laatste stappen naar een > volledige overstap op oOo. > > / / > > */Met vriendelijke groet/* > > */Kees Verhagen/* > > *P** **Bespaar papier - Is het noodzakelijk om deze e-mail te printen?* > > cid:876062212@19092007-21ED > > > --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
