Gå til innhold

Subquery bruk med flere tabeller og JOIN


Anbefalte innlegg

Hadde en sak på .NET forumet som ble gjort om til SQL så jeg tar opp tråden her, i tilfelle noen andre kan svare.

 

Greia er at jeg trenger å påvirke et SQL uttrykk ved å endre på WHERE.  Fikk et tips at jeg kunne bruke WITH abc AS (SELECT........).....

Dette virket veldig lovende, men får problemer når Query bruker flere tabeller, der kolonner har samme navn.

 

Eks:

with res as 
(
SELECT TOP 2147483647 A.RECORDFILTER, A.NUMMER, A.NAVN, B.NUMMER, B.PERSONID, B.BESKRIVELSE, B.TELEFON 
FROM {oj PERSONER A LEFT OUTER JOIN PHONES B ON A.NUMMER= B.PERSONID } 
WHERE ( A.NAVN = 'Ole' ) 
ORDER BY B.PERSONID ASC, B.BESKRIVELSE ASC
) 
select * from res where ett_eller_annet_tillegg

Dette gir følgende feilmelding:

Msg 8156, Level 16, State 1, Line 1
The column 'NUMMER' was specified multiple times for 'res'.

 

Greia er at jeg ikke har påvirkning på uttrykket som kommer inn.

 

Lar dette seg gjøre i det hele tatt ?

Lenke til kommentar
Videoannonse
Annonse

Bruk alias på kolonner som har samme navn for å gi dem ett nytt unikt navn

with res as
(
SELECT TOP 2147483647 A.RECORDFILTER, A.NUMMER AS number_person, A.NAVN, B.NUMMER AS number_phone, B.PERSONID, B.BESKRIVELSE, B.TELEFON
FROM {oj PERSONER A LEFT OUTER JOIN PHONES B ON A.NUMMER= B.PERSONID }
WHERE ( A.NAVN = 'Ole' )
ORDER BY B.PERSONID ASC, B.BESKRIVELSE ASC
)
select * from res where ett_eller_annet_tillegg
Lenke til kommentar
  • 2 uker senere...

Bruk alias på kolonner som har samme navn for å gi dem ett nytt unikt navn

with res as
(
SELECT TOP 2147483647 A.RECORDFILTER, A.NUMMER AS number_person, A.NAVN, B.NUMMER AS number_phone, B.PERSONID, B.BESKRIVELSE, B.TELEFON
FROM {oj PERSONER A LEFT OUTER JOIN PHONES B ON A.NUMMER= B.PERSONID }
WHERE ( A.NAVN = 'Ole' )
ORDER BY B.PERSONID ASC, B.BESKRIVELSE ASC
)
select * from res where ett_eller_annet_tillegg

 

Nei, da må jeg lage parser og det blir komplisert.  Men jeg fikk svar på .NET kanalen: https://www.diskusjon.no/index.php?showtopic=1798726

Takker for svar uansett :-)

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...