19. februar 2004 - 09:33Der 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));
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.
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)) ;
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.