Momenteel ben ik ons orderverwerkingssysteem aan het herschrijven.
Hierin wil ik een stuk gebruikersgemak verbeteren, maar de hoofdreden is om alle records over te zetten naar SQL server.
Het programmeerwerk voor de user interface is af en ik ben nu bezig om de rapporten op te stellen.
Op dat we een groot aantal (meertalige) rapporten hebben, wil ik dat alle data zo compleet mogelijk door de SQL server wordt aangeleverd.
Nu loop ik tegen het volgende probleem aan.
Zoals je kunt zien in onderstaande screenshot bestaat de mogelijkheid om het adres verdeeld over 5 velden in te voeren. Dit om ook buitenlandse adressen in te voeren.
Vervolgens wil ik op de SQL server een query laten uitvoeren, die er voor zorgt dat het adres verdeeld over 5 velden weergegeven wordt. De query moet dus als-het-ware de lege regels er van tussen laten. Verder bepaald de landkeuze of de postcode vòòr of achter de woonplaats wordt gezet. Bij Nederlandse adressen wordt geen landnaam weergegeven.
Ik heb de volgende SQL code al gemaakt, maar zoals je ziet wordt dan de postcode en woonplaats meerdere keren weergegeven.
Maar wanneer ik bovenstaande VIEW uitvoer, krijg ik het volgende resultaat:
Wie weet de oplossing om dit goed te laten functioneren?
Alvast bedankt!
René
Hierin wil ik een stuk gebruikersgemak verbeteren, maar de hoofdreden is om alle records over te zetten naar SQL server.
Het programmeerwerk voor de user interface is af en ik ben nu bezig om de rapporten op te stellen.
Op dat we een groot aantal (meertalige) rapporten hebben, wil ik dat alle data zo compleet mogelijk door de SQL server wordt aangeleverd.
Nu loop ik tegen het volgende probleem aan.
Zoals je kunt zien in onderstaande screenshot bestaat de mogelijkheid om het adres verdeeld over 5 velden in te voeren. Dit om ook buitenlandse adressen in te voeren.
Vervolgens wil ik op de SQL server een query laten uitvoeren, die er voor zorgt dat het adres verdeeld over 5 velden weergegeven wordt. De query moet dus als-het-ware de lege regels er van tussen laten. Verder bepaald de landkeuze of de postcode vòòr of achter de woonplaats wordt gezet. Bij Nederlandse adressen wordt geen landnaam weergegeven.
Ik heb de volgende SQL code al gemaakt, maar zoals je ziet wordt dan de postcode en woonplaats meerdere keren weergegeven.
Code:
SELECT dbo.tblCompany.CompanyID,
Bedrijfsnaam = dbo.tblCompany.CompanyNaam,
BezoekAdres1 =
CASE WHEN dbo.tblCompany.CompanyBezoekAdres1 IS NOT NULL THEN
dbo.tblCompany.CompanyBezoekAdres1
ELSE
CASE WHEN dbo.tblCompany.CompanyBezoekAdres2 IS NOT NULL THEN
dbo.tblCompany.CompanyBezoekAdres2
ELSE
CASE WHEN dbo.tblCompany.CompanyBezoekAdres3 IS NOT NULL THEN
dbo.tblCompany.CompanyBezoekAdres3
ELSE
CASE WHEN dbo.tblLand.LandPCvolgorde = 2 THEN
CASE WHEN dbo.tblCompany.CompanyBezoekPostcode IS NOT NULL THEN
dbo.tblCompany.CompanyBezoekPlaats + ' ' + dbo.tblCompany.CompanyBezoekPostcode
ELSE
CASE WHEN dbo.tblCompany.CompanyBezoekPlaats IS NOT NULL THEN
dbo.tblCompany.CompanyBezoekPlaats
ELSE
CASE WHEN dbo.tblCompany.CompanyBezoekLandID <> 'NL' THEN
dbo.tblLand.LandOmschrE
END
END
END
ELSE
CASE WHEN dbo.tblCompany.CompanyBezoekPostcode IS NOT NULL THEN
dbo.tblCompany.CompanyBezoekPostcode + ' ' + dbo.tblCompany.CompanyBezoekPlaats
ELSE
CASE WHEN dbo.tblCompany.CompanyBezoekPlaats IS NOT NULL THEN
dbo.tblCompany.CompanyBezoekPlaats
ELSE
CASE WHEN dbo.tblCompany.CompanyBezoekLandID <> 'NL' THEN
dbo.tblLand.LandOmschrE
END
END
END
END
END
END
END,
BezoekAdres2 =
CASE WHEN dbo.tblCompany.CompanyBezoekAdres2 IS NOT NULL THEN
dbo.tblCompany.CompanyBezoekAdres2
ELSE
CASE WHEN dbo.tblCompany.CompanyBezoekAdres3 IS NOT NULL THEN
dbo.tblCompany.CompanyBezoekAdres3
ELSE
CASE WHEN dbo.tblLand.LandPCvolgorde = 2 THEN
CASE WHEN dbo.tblCompany.CompanyBezoekPostcode IS NOT NULL THEN
dbo.tblCompany.CompanyBezoekPlaats + ' ' + dbo.tblCompany.CompanyBezoekPostcode
ELSE
CASE WHEN dbo.tblCompany.CompanyBezoekPlaats IS NOT NULL THEN
dbo.tblCompany.CompanyBezoekPlaats
ELSE
CASE WHEN dbo.tblCompany.CompanyBezoekLandID <> 'NL' THEN
dbo.tblLand.LandOmschrE
END
END
END
ELSE
CASE WHEN dbo.tblCompany.CompanyBezoekPostcode IS NOT NULL THEN
dbo.tblCompany.CompanyBezoekPostcode + ' ' + dbo.tblCompany.CompanyBezoekPlaats
ELSE
CASE WHEN dbo.tblCompany.CompanyBezoekPlaats IS NOT NULL THEN
dbo.tblCompany.CompanyBezoekPlaats
ELSE
CASE WHEN dbo.tblCompany.CompanyBezoekLandID <> 'NL' THEN
dbo.tblLand.LandOmschrE
END
END
END
END
END
END,
BezoekAdres3 =
CASE WHEN dbo.tblCompany.CompanyBezoekAdres3 IS NOT NULL THEN
dbo.tblCompany.CompanyBezoekAdres3
ELSE
CASE WHEN dbo.tblLand.LandPCvolgorde = 2 THEN
CASE WHEN dbo.tblCompany.CompanyBezoekPostcode IS NOT NULL THEN
dbo.tblCompany.CompanyBezoekPlaats + ' ' + dbo.tblCompany.CompanyBezoekPostcode
ELSE
CASE WHEN dbo.tblCompany.CompanyBezoekPlaats IS NOT NULL THEN
dbo.tblCompany.CompanyBezoekPlaats
ELSE
CASE WHEN dbo.tblCompany.CompanyBezoekLandID <> 'NL' THEN
dbo.tblLand.LandOmschrE
END
END
END
ELSE
CASE WHEN dbo.tblCompany.CompanyBezoekPostcode IS NOT NULL THEN
dbo.tblCompany.CompanyBezoekPostcode + ' ' + dbo.tblCompany.CompanyBezoekPlaats
ELSE
CASE WHEN dbo.tblCompany.CompanyBezoekPlaats IS NOT NULL THEN
dbo.tblCompany.CompanyBezoekPlaats
ELSE
CASE WHEN dbo.tblCompany.CompanyBezoekLandID <> 'NL' THEN
dbo.tblLand.LandOmschrE
END
END
END
END
END,
BezoekAdres4 =
CASE WHEN dbo.tblLand.LandPCvolgorde = 2 THEN
CASE WHEN dbo.tblCompany.CompanyBezoekPostcode IS NOT NULL THEN
dbo.tblCompany.CompanyBezoekPlaats + ' ' + dbo.tblCompany.CompanyBezoekPostcode
ELSE
CASE WHEN dbo.tblCompany.CompanyBezoekPlaats IS NOT NULL THEN
dbo.tblCompany.CompanyBezoekPlaats
ELSE
CASE WHEN dbo.tblCompany.CompanyBezoekLandID <> 'NL' THEN
dbo.tblLand.LandOmschrE
END
END
END
ELSE
CASE WHEN dbo.tblCompany.CompanyBezoekPostcode IS NOT NULL THEN
dbo.tblCompany.CompanyBezoekPostcode + ' ' + dbo.tblCompany.CompanyBezoekPlaats
ELSE
CASE WHEN dbo.tblCompany.CompanyBezoekPlaats IS NOT NULL THEN
dbo.tblCompany.CompanyBezoekPlaats
ELSE
CASE WHEN dbo.tblCompany.CompanyBezoekLandID <> 'NL' THEN
dbo.tblLand.LandOmschrE
END
END
END
END,
BezoekAdres5 =
CASE WHEN dbo.tblCompany.CompanyBezoekLandID <> 'NL' THEN
dbo.tblLand.LandOmschrE
END,
Telefoon = dbo.tblCompany.CompanyTelefoon,
Fax = dbo.tblCompany.CompanyFax,
BTWnummer = dbo.tblCompany.CompanyBTWnummer
FROM dbo.tblCompany INNER JOIN
dbo.tblLand ON dbo.tblCompany.CompanyBezoekLandID = dbo.tblLand.LandID
Maar wanneer ik bovenstaande VIEW uitvoer, krijg ik het volgende resultaat:
Wie weet de oplossing om dit goed te laten functioneren?
Alvast bedankt!
René