Avatar billede kolme Nybegynder
29. marts 2006 - 20:32 Der er 9 kommentarer og
2 løsninger

sql med if?

Hej,

Jeg er atter på grænsen af hvad jeg formår og må derfor ty til eksperthjælp:

Jeg vil gerne lave et sql-udtræk der trækker attributter på baggrund af en enkelt attributs værdi:

SELECT t1.Pk_ID, t1.fornavn, t1.efternavn, t1.arbejdsadresseprimaer FROM tabel1 AS t1

If t1.arbejdsadresseprimaer = 1 then
    SELECT t2.vejnavn, t2.by FROM tabel2 AS t2 WHERE t2.adressetype = 'arbejde'
If t1.arbejdsadresseprimaer = 0 then
    SELECT t2.vejnavn, t2.by FROM tabel2 AS t2 WHERE
t2.adressetype = 'privat'

Kan det lade sig gøre?

Udtrækket skal anvendes i et access projekt og vil have 100000 medlemmer. Vil det ikke være performancemæssigt korrekt at foretage ovenstående på databasesiden fremfor i Access?
Avatar billede nielle Nybegynder
29. marts 2006 - 20:50 #1
Måske virker dette i MS SQL:

SELECT t2.vejnavn, t2.by FROM tabel2 AS t2 WHERE t2.adressetype = IFF(t1.arbejdsadresseprimaer = 1, 'arbejde', 'privat')
Avatar billede kjulius Novice
29. marts 2006 - 22:41 #2
Eller måske:

SELECT t1.Pk_ID, t1.fornavn, t1.efternavn, t1.arbejdsadresseprimaer, t2.vejnavn, t2.by
FROM tabel1 AS t1
INNER JOIN tabel2 AS t2
  ON t2.adressetype = CASE WHEN t1.arbejdsadresseprimaer = 0 THEN 'privat' ELSE 'arbejde' END
Avatar billede kjulius Novice
29. marts 2006 - 22:47 #3
Eller måske den omvendte:

SELECT t1.Pk_ID, t1.fornavn, t1.efternavn, t1.arbejdsadresseprimaer, t2.vejnavn, t2.by
FROM tabel1 AS t1
INNER JOIN tabel2 AS t2
  ON t1.arbejdsadresseprimaer = CASE t2.adressetype WHEN 'privat' THEN 0 WHEN 'arbejde' THEN 1 END
Avatar billede nielle Nybegynder
18. april 2006 - 20:40 #4
Hvad med noget respons?
Avatar billede kolme Nybegynder
21. marts 2008 - 18:23 #5
Avs. Denne post har vist været åbent ALT for længe. Røde ører og en undskyldning er vist på plads. Smid et svar hvis I vil have point...
Avatar billede nielle Nybegynder
21. marts 2008 - 20:38 #6
Svar :^)
Avatar billede kjulius Novice
22. marts 2008 - 00:39 #7
OK, men virkede det?
Avatar billede nielle Nybegynder
22. marts 2008 - 09:51 #8
Det er nok lidt svært at huske 2 år efter :^)
Avatar billede kolme Nybegynder
22. marts 2008 - 11:01 #9
Ja, jeg kan ærlig talt ikke huske det.
Avatar billede nielle Nybegynder
22. marts 2008 - 20:00 #10
Takker for point :^)
Avatar billede kjulius Novice
23. marts 2008 - 21:44 #11
Ah, nej, det er vist forståeligt, hvis det ikke lige klikker. Jeg havde ikke lige lagt mærke til datoen. Ak ja, som tiden går! LOL
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester