Please start any new threads on our new site at https://forums.sqlteam.com. We've got lots of great SQL Server experts to answer whatever question you can come up with.

 All Forums
 SQL Server 2005 Forums
 Transact-SQL (2005)
 query help

Author  Topic 

rajasekhar857
Constraint Violating Yak Guru

396 Posts

Posted - 2009-07-07 : 07:00:21
hi help me in giving mssql query into oracle with comfortable.

UPDATE EMRAppointmentDetails
SET TP_PKG_ID = b.TP_PKG_ID
FROM EMRAppointmentDetails a,
(SELECT EAH.TP_PKG_ID,
EA.APPOINTMENT_ID
FROM EMRAppointmentDetails EA
INNER JOIN EMRAppointmentDetailsHistory EAH
ON EA.APPOINTMENT_ID =EAH.APPOINTMENT_ID
WHERE EA.aPPOINTMENT_STATUS_ID =3
AND EAH.aPPOINTMENT_STATUS_ID = 8
AND EAH.TP_PKG_ID IS NOT NULL
AND EA.TP_PKG_ID IS NULL
AND EA.HEALTH_PKG_ID IS NOT NULL
) b
WHERE b.APPOINTMENT_ID = a.APPOINTMENT_ID
GO

jcelko
Esteemed SQL Purist

547 Posts

Posted - 2009-07-07 : 23:12:49
Since the data element name APPOINTMENT_STATUS_ID is absurd, I assume you meant apointment_status. Since identifiers cannot be NULL, why are you checking that. The proprietary UPDATE with query is non-deterministic, and needless now that DB2, Oracle, SQL Server and other SQLs have MERGE:

MERGE INTO EMRAppointmentDetails
USING (SELECT EAH.tp_pkg_id, EA.appointment_id
FROM EMRAppointmentDetailsHistory AS EAH
WHERE EAH.appointment_status = 8
AND EAH.tp_pkg_id IS NOT NULL) AS H1
ON EA.appointment_status = 3
AND EA.health_pkg_id IS NOT NULL
AND EA.tp_pkg_id IS NULL
AND EA.appointment_id = EAH.appointment_id
WHEN MATCHED
THEN UPDATE
SET EMRAppointmentDetails.tp_pkg_id = H1.tp_pkg_id;


--CELKO--
Joe Celko, SQL Guru
Go to Top of Page

visakh16
Very Important crosS Applying yaK Herder

52326 Posts

Posted - 2009-07-08 : 12:22:42
quote:
Originally posted by jcelko

Since the data element name APPOINTMENT_STATUS_ID is absurd, I assume you meant apointment_status. Since identifiers cannot be NULL, why are you checking that. The proprietary UPDATE with query is non-deterministic, and needless now that DB2, Oracle, SQL Server and other SQLs have MERGE:

MERGE INTO EMRAppointmentDetails
USING (SELECT EAH.tp_pkg_id, EA.appointment_id
FROM EMRAppointmentDetailsHistory AS EAH
WHERE EAH.appointment_status = 8
AND EAH.tp_pkg_id IS NOT NULL) AS H1
ON EA.appointment_status = 3
AND EA.health_pkg_id IS NOT NULL
AND EA.tp_pkg_id IS NULL
AND EA.appointment_id = EAH.appointment_id
WHEN MATCHED
THEN UPDATE
SET EMRAppointmentDetails.tp_pkg_id = H1.tp_pkg_id;


--CELKO--
Joe Celko, SQL Guru



MERGE is available in SQL Server only from SQL 2008 onwards with compatibility level 100
Go to Top of Page
   

- Advertisement -