Avatar billede larsomania Nybegynder
19. februar 2004 - 09:33 Der er 4 kommentarer og
1 løsning

SQL Server query om til Oracle

Hejsa,

Er der en Oracle-haj der kan lave følgende MS-SQL query om til Oracle syntax?

SELECT ConsSubmission.SubmissionName,
    ConsSubmission.TotalHomeAmount,
    ConsSubmission.NickName, CapUser.LoginName AS UserInit,
    ConsSubmission.SubmissionStatus,
    CapUser.FirstName AS UserFirst,
    CapUser.LastName AS UserLast,
    ConsSubmission.SubmitDate,
    ApprUser.LoginName AS ApprInit,
    ApprUser.FirstName AS ApprFirst,
    ApprUser.LastName AS apprlast
FROM ApprovalPosition ApprAppr INNER JOIN
    ApprovalPosition UsrApprPos ON
    ApprAppr.ApprovalPositionID = UsrApprPos.ApprovalPositionSupervisorID
    INNER JOIN
    CapUser ApprUser ON
    ApprAppr.CapUserID = ApprUser.CapUserID RIGHT OUTER JOIN
    ConsSubmission INNER JOIN
    CapUser ON
    ConsSubmission.CapUserID = dbo.CapUser.CapUserID ON
    UsrApprPos.ApprovalPositionID = dbo.ConsSubmission.ApprovalPositionID
WHERE (ConsSubmission.SubmissionStatus NOT IN (4, 5));
Avatar billede trer Nybegynder
19. februar 2004 - 10:08 #1
I Oracle 9 burde du kunne køre den direkte.

I tidligere versioner skal den skrives om til "gammel" join syntaks.  Der er et problem der, da din kode ikke tydeligt nok viser hvad din kolonner din right outer join bruger. Hvis du vil flytte join betingelsen op efter "RIGHT OUTER JOIN" ligesom dine INNER JOINS er angivet så vil det være væsenligt nemmere.
Avatar billede larsomania Nybegynder
19. februar 2004 - 10:11 #2
Det er en Oracle 8 - så det skal være den gamle syntaks med (+)
Avatar billede trer Nybegynder
19. februar 2004 - 10:15 #3
Ok.  Jeg *tror* nedenstående giver det rette - men som nævnt, jeg kan ikke helt gennemskue din join syntaks:

FROM    ApprovalPosition ApprAppr,
    ApprovalPosition UsrApprPos,
    CapUser ApprUser,
    ConsSubmission,
    CapUser
WHERE    ApprAppr.ApprovalPositionID = UsrApprPos.ApprovalPositionSupervisorID
AND    ApprAppr.CapUserID = ApprUser.CapUserID
AND    ConsSubmission.CapUserID = CapUser.CapUserID
AND    UsrApprPos.ApprovalPositionID (+) = ConsSubmission.ApprovalPositionID
AND    (ConsSubmission.SubmissionStatus NOT IN (4, 5))
;
Avatar billede larsomania Nybegynder
19. februar 2004 - 11:10 #4
Det virkede! Og giver korrekt svar.
Avatar billede trer Nybegynder
19. februar 2004 - 11:18 #5
Ok, så er der et svar fra mig :-)
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