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.
| Author |
Topic |
|
rajasekhar857
Constraint Violating Yak Guru
396 Posts |
Posted - 2009-08-13 : 03:23:04
|
| [code]SELECT ET.EMR_TRANSACTION_ID, ET.TASK_ID,'ENCOUNTER' AS TASK_NAME, TO_CHAR(ET.NODE_DEFINITION_ID) AS NODE_DEFINITION_ID, ET.ID_VALUE, TO_CHAR(ET.FLOW_ID) AS FLOW_ID, TO_CHAR(EA.APPOINTMENT_DATE,'DD/MM/YYYY') AS APPOINTMENT_DATE, TO_CHAR(EA.APPOINTMENT_TIME,'HH:MI:SS AM') AS APPOINTMENT_TIME, TO_CHAR(EA.CREATED_DATE,'DD/MM/YYYY') AS CREATED_DATE, TO_CHAR(EA.APPOINTMENT_ID) AS APPOINTMENT_ID,EA.REASON || ' ' || EA.FRONTDESK_COMMENTS AS FRONTDESK_COMMENTS, EAL.APPOINTMENT_STATUS, EPM.PATIENT_FIRSTNAME, EPM.PATIENT_LASTNAME, EPM.PATIENT_DOB, EPM.PATIENT_HOMEPHONE, EPM.PATIENT_ID, EPM.PATIENT_TYPE,EPM.PATIENT_GENDER,EPM.RACE_ETHNICITY_ID,EPM.MARITAL_STATUS, '' AS NAME, ET.USER_LOGIN AS CONSULTANT_ID, ECD.CONSULTANT_NAME, ET.ROLE_NAME, EA.APPOINTMENT_LOCATION_ID AS LOCATION_ID, EPM.REGISTER_ID AS REGISTER_ID, NVL(IS_EXPRESS,0) AS IS_EXPRESS, 0 AS LAB_REQUEST_ID, 0 AS SPECIMEN_ID, 1 AS IS_ACTIVE FROM EMRAppointmentDetailsHistory EA LEFT JOIN EMRTransactions ET ON ET.ID_VALUE = EA.APPOINTMENT_ID LEFT JOIN EMRPatientsMaster EPM ON EA.PATIENT_ID = EPM.PATIENT_ID LEFT JOIN EMRAppointmentStatusLkup EAL ON EAL.APPOINTMENT_STATUS_ID = EA.APPOINTMENT_ID LEFT JOIN EMRConsultantDetails ECD ON ECD.CONSULTANT_ID = EA.CONSULTANT_ID WHERE ET.TASK_ID = 9 AND EA.APPOINTMENT_STATUS_ID = 2 AND EXISTS (SELECT EMR_TRANSACTION_ID FROM EMRTRANSACTIONS ET1 WHERE ET1.TASK_ID=108 AND ET1.PATIENT_ID = ET.PATIENT_ID AND ET.ID_VALUE = ET1.ID_VALUE)[/code][code]SELECT ET.EMR_TRANSACTION_ID, ET.TASK_ID,'ENCOUNTER' AS TASK_NAME, TO_CHAR(ET.NODE_DEFINITION_ID) AS NODE_DEFINITION_ID, ET.ID_VALUE, TO_CHAR(ET.FLOW_ID) AS FLOW_ID, TO_CHAR(EA.APPOINTMENT_DATE,'DD/MM/YYYY') AS APPOINTMENT_DATE, TO_CHAR(EA.APPOINTMENT_TIME,'HH:MI:SS AM') AS APPOINTMENT_TIME, TO_CHAR(EA.CREATED_DATE,'DD/MM/YYYY') AS CREATED_DATE, TO_CHAR(EA.APPOINTMENT_ID) AS APPOINTMENT_ID,EA.REASON || ' ' || EA.FRONTDESK_COMMENTS AS FRONTDESK_COMMENTS, EAL.APPOINTMENT_STATUS, EPM.PATIENT_FIRSTNAME, EPM.PATIENT_LASTNAME, EPM.PATIENT_DOB, EPM.PATIENT_HOMEPHONE, EPM.PATIENT_ID, EPM.PATIENT_TYPE,EPM.PATIENT_GENDER,EPM.RACE_ETHNICITY_ID,EPM.MARITAL_STATUS, '' AS NAME, ET.USER_LOGIN AS CONSULTANT_ID, ECD.CONSULTANT_NAME, ET.ROLE_NAME, EA.APPOINTMENT_LOCATION_ID AS LOCATION_ID, EPM.REGISTER_ID AS REGISTER_ID, NVL(IS_EXPRESS,0) AS IS_EXPRESS, 0 AS LAB_REQUEST_ID, 0 AS SPECIMEN_ID, 0 AS IS_ACTIVE FROM EMRAppointmentDetailsHistory EA LEFT JOIN EMRTransactions ET ON ET.ID_VALUE = EA.APPOINTMENT_ID LEFT JOIN EMRPatientsMaster EPM ON EA.PATIENT_ID = EPM.PATIENT_ID LEFT JOIN EMRAppointmentStatusLkup EAL ON EAL.APPOINTMENT_STATUS_ID = EA.APPOINTMENT_ID LEFT JOIN EMRConsultantDetails ECD ON ECD.CONSULTANT_ID = EA.CONSULTANT_ID WHERE ET.TASK_ID = 9 AND EA.APPOINTMENT_STATUS_ID = 2 AND NOT EXISTS (SELECT EMR_TRANSACTION_ID FROM EMRTRANSACTIONS ET1 WHERE ET1.TASK_ID=108 AND ET1.PATIENT_ID = ET.PATIENT_ID AND ET.ID_VALUE = ET1.ID_VALUE) [/code]hi both the queries are identical bit only change is one is having exists as codition and other is having not exists as condition now i want to merge both for looking for one select query.can you help me out in doing so |
|
|
bklr
Master Smack Fu Yak Hacker
1693 Posts |
Posted - 2009-08-13 : 03:23:54
|
| if displaying same columns with same datatype use union |
 |
|
|
rajasekhar857
Constraint Violating Yak Guru
396 Posts |
Posted - 2009-08-13 : 03:27:40
|
| i have used union all operator now i wnt to mahe it for a sigle select query |
 |
|
|
dwill
Starting Member
4 Posts |
Posted - 2009-08-13 : 04:16:27
|
| Hang on - am i missing something here but the first query gets "those that exist", and second gets "those that don't" - and you want to get both lots together in one query? Just remove the second query and then remove the "and exists" clause from the first - i.e. return everything! |
 |
|
|
rajasekhar857
Constraint Violating Yak Guru
396 Posts |
Posted - 2009-08-13 : 04:51:47
|
| can you give me the query dwill |
 |
|
|
rajasekhar857
Constraint Violating Yak Guru
396 Posts |
Posted - 2009-08-13 : 05:07:28
|
| IS IT CORRECTSELECT ET.EMR_TRANSACTION_ID, ET.TASK_ID,'ENCOUNTER' AS TASK_NAME, TO_CHAR(ET.NODE_DEFINITION_ID) AS NODE_DEFINITION_ID, ET.ID_VALUE, TO_CHAR(ET.FLOW_ID) AS FLOW_ID, TO_CHAR(EA.APPOINTMENT_DATE,'DD/MM/YYYY') AS APPOINTMENT_DATE, TO_CHAR(EA.APPOINTMENT_TIME,'HH:MI:SS AM') AS APPOINTMENT_TIME, TO_CHAR(EA.CREATED_DATE,'DD/MM/YYYY') AS CREATED_DATE, TO_CHAR(EA.APPOINTMENT_ID) AS APPOINTMENT_ID,EA.REASON || ' ' || EA.FRONTDESK_COMMENTS AS FRONTDESK_COMMENTS, EAL.APPOINTMENT_STATUS, EPM.PATIENT_FIRSTNAME, EPM.PATIENT_LASTNAME, EPM.PATIENT_DOB, EPM.PATIENT_HOMEPHONE, EPM.PATIENT_ID, EPM.PATIENT_TYPE,EPM.PATIENT_GENDER,EPM.RACE_ETHNICITY_ID,EPM.MARITAL_STATUS, '' AS NAME, ET.USER_LOGIN AS CONSULTANT_ID, ECD.CONSULTANT_NAME, ET.ROLE_NAME, EA.APPOINTMENT_LOCATION_ID AS LOCATION_ID, EPM.REGISTER_ID AS REGISTER_ID, NVL(IS_EXPRESS,0) AS IS_EXPRESS, 0 AS LAB_REQUEST_ID, 0 AS SPECIMEN_ID, 1 AS IS_ACTIVE FROM EMRAppointmentDetailsHistory EA LEFT JOIN EMRTransactions ET ON ET.ID_VALUE = EA.APPOINTMENT_ID LEFT JOIN EMRPatientsMaster EPM ON EA.PATIENT_ID = EPM.PATIENT_ID LEFT JOIN EMRAppointmentStatusLkup EAL ON EAL.APPOINTMENT_STATUS_ID = EA.APPOINTMENT_ID LEFT JOIN EMRConsultantDetails ECD ON ECD.CONSULTANT_ID = EA.CONSULTANT_ID WHERE ET.TASK_ID = 9 AND EA.APPOINTMENT_STATUS_ID = 2 AND EXISTS (SELECT EMR_TRANSACTION_ID FROM EMRTRANSACTIONS ET1 WHERE ET1.TASK_ID=108 AND ET1.PATIENT_ID = ET.PATIENT_ID AND ET.ID_VALUE = ET1.ID_VALUE) AND NOT EXISTS (SELECT EMR_TRANSACTION_ID FROM EMRTRANSACTIONS ET1 WHERE ET1.TASK_ID=108 AND ET1.PATIENT_ID = ET.PATIENT_ID AND ET.ID_VALUE = ET1.ID_VALUE) |
 |
|
|
bklr
Master Smack Fu Yak Hacker
1693 Posts |
Posted - 2009-08-13 : 05:10:59
|
quote: Originally posted by rajasekhar857 IS IT CORRECTSELECT ET.EMR_TRANSACTION_ID, ET.TASK_ID,'ENCOUNTER' AS TASK_NAME, TO_CHAR(ET.NODE_DEFINITION_ID) AS NODE_DEFINITION_ID, ET.ID_VALUE, TO_CHAR(ET.FLOW_ID) AS FLOW_ID, TO_CHAR(EA.APPOINTMENT_DATE,'DD/MM/YYYY') AS APPOINTMENT_DATE, TO_CHAR(EA.APPOINTMENT_TIME,'HH:MI:SS AM') AS APPOINTMENT_TIME, TO_CHAR(EA.CREATED_DATE,'DD/MM/YYYY') AS CREATED_DATE, TO_CHAR(EA.APPOINTMENT_ID) AS APPOINTMENT_ID,EA.REASON || ' ' || EA.FRONTDESK_COMMENTS AS FRONTDESK_COMMENTS, EAL.APPOINTMENT_STATUS, EPM.PATIENT_FIRSTNAME, EPM.PATIENT_LASTNAME, EPM.PATIENT_DOB, EPM.PATIENT_HOMEPHONE, EPM.PATIENT_ID, EPM.PATIENT_TYPE,EPM.PATIENT_GENDER,EPM.RACE_ETHNICITY_ID,EPM.MARITAL_STATUS, '' AS NAME, ET.USER_LOGIN AS CONSULTANT_ID, ECD.CONSULTANT_NAME, ET.ROLE_NAME, EA.APPOINTMENT_LOCATION_ID AS LOCATION_ID, EPM.REGISTER_ID AS REGISTER_ID, NVL(IS_EXPRESS,0) AS IS_EXPRESS, 0 AS LAB_REQUEST_ID, 0 AS SPECIMEN_ID, 1 AS IS_ACTIVE FROM EMRAppointmentDetailsHistory EA LEFT JOIN EMRTransactions ET ON ET.ID_VALUE = EA.APPOINTMENT_ID LEFT JOIN EMRPatientsMaster EPM ON EA.PATIENT_ID = EPM.PATIENT_ID LEFT JOIN EMRAppointmentStatusLkup EAL ON EAL.APPOINTMENT_STATUS_ID = EA.APPOINTMENT_ID LEFT JOIN EMRConsultantDetails ECD ON ECD.CONSULTANT_ID = EA.CONSULTANT_ID WHERE ET.TASK_ID = 9 AND EA.APPOINTMENT_STATUS_ID = 2 AND EXISTS (SELECT EMR_TRANSACTION_ID FROM EMRTRANSACTIONS ET1 WHERE ET1.TASK_ID=108 AND ET1.PATIENT_ID = ET.PATIENT_ID AND ET.ID_VALUE = ET1.ID_VALUE) AND NOT EXISTS (SELECT EMR_TRANSACTION_ID FROM EMRTRANSACTIONS ET1 WHERE ET1.TASK_ID=108 AND ET1.PATIENT_ID = ET.PATIENT_ID AND ET.ID_VALUE = ET1.ID_VALUE)
|
 |
|
|
rajasekhar857
Constraint Violating Yak Guru
396 Posts |
Posted - 2009-08-13 : 05:12:03
|
| if i want to include then how can i able to write those |
 |
|
|
rajasekhar857
Constraint Violating Yak Guru
396 Posts |
Posted - 2009-08-13 : 05:25:21
|
| hi in the above queries first query is having 1 AS IS_ACTIVE second query is having 0 AS IS_ACTIVE .in such cases how can i merge it into a single query |
 |
|
|
rocknpop
Posting Yak Master
201 Posts |
Posted - 2009-08-13 : 05:58:28
|
| maybe do an order by IS_ACTIVE in bklr's corrected query--------------------Rock n Roll with SQL |
 |
|
|
Transact Charlie
Master Smack Fu Yak Hacker
3451 Posts |
Posted - 2009-08-13 : 06:09:34
|
bklr's corrected query still sets active = 1 for everyone.You could try this (replacing the AND EXISTS portion for a left join. Then a CASE statement to determine if they are active or not based on the join conditions of the derived table.SELECT ET.EMR_TRANSACTION_ID , ET.TASK_ID , 'ENCOUNTER' AS TASK_NAME , TO_CHAR(ET.NODE_DEFINITION_ID) AS NODE_DEFINITION_ID , ET.ID_VALUE , TO_CHAR(ET.FLOW_ID) AS FLOW_ID , TO_CHAR(EA.APPOINTMENT_DATE,'DD/MM/YYYY') AS APPOINTMENT_DATE , TO_CHAR(EA.APPOINTMENT_TIME,'HH:MI:SS AM') AS APPOINTMENT_TIME , TO_CHAR(EA.CREATED_DATE,'DD/MM/YYYY') AS CREATED_DATE , TO_CHAR(EA.APPOINTMENT_ID) AS APPOINTMENT_ID , EA.REASON || ' ' || EA.FRONTDESK_COMMENTS AS FRONTDESK_COMMENTS , EAL.APPOINTMENT_STATUS , EPM.PATIENT_FIRSTNAME , EPM.PATIENT_LASTNAME , EPM.PATIENT_DOB , EPM.PATIENT_HOMEPHONE , EPM.PATIENT_ID , EPM.PATIENT_TYPE , EPM.PATIENT_GENDER , EPM.RACE_ETHNICITY_ID , EPM.MARITAL_STATUS , '' AS NAME , ET.USER_LOGIN AS CONSULTANT_ID , ECD.CONSULTANT_NAME , ET.ROLE_NAME , EA.APPOINTMENT_LOCATION_ID AS LOCATION_ID , EPM.REGISTER_ID AS REGISTER_ID , NVL(IS_EXPRESS,0) AS IS_EXPRESS , 0 AS LAB_REQUEST_ID , 0 AS SPECIMEN_ID , CASE WHEN activeCheck.PATIENT_ID IS NULL THEN 0 ELSE 1 END AS IS_ACTIVE FROM EMRAppointmentDetailsHistory EA LEFT JOIN EMRTransactions ET ON ET.ID_VALUE = EA.APPOINTMENT_ID LEFT JOIN EMRPatientsMaster EPM ON EA.PATIENT_ID = EPM.PATIENT_ID LEFT JOIN EMRAppointmentStatusLkup EAL ON EAL.APPOINTMENT_STATUS_ID = EA.APPOINTMENT_ID LEFT JOIN EMRConsultantDetails ECD ON ECD.CONSULTANT_ID = EA.CONSULTANT_ID LEFT JOIN ( SELECT PATIENT_ID AS PATIENT_ID , ID_VALUE AS ID_VALUE FROM EMRTRANSACTIONS WHERE TASK_ID=108 ) activeCheck ON activeCheck.PATIENT_ID = ET.PATIENT_ID AND activeCheck.ID_VALUE = ET.ID_VALUEWHERE ET.TASK_ID = 9 AND EA.APPOINTMENT_STATUS_ID = 2 Oh -- what's this syntax in your select list by the way., EA.REASON || ' ' || EA.FRONTDESK_COMMENTS AS FRONTDESK_COMMENTS I've not seen that before and don't think its TSQLCharlie===============================================================Msg 3903, Level 16, State 1, Line 1736The ROLLBACK TRANSACTION request has no corresponding BEGIN TRANSACTION |
 |
|
|
rocknpop
Posting Yak Master
201 Posts |
Posted - 2009-08-13 : 06:13:50
|
| good catch Charlie, overlooked both--------------------Rock n Roll with SQL |
 |
|
|
rajasekhar857
Constraint Violating Yak Guru
396 Posts |
Posted - 2009-08-13 : 07:21:13
|
| yes its working fine thanks for your suggestions |
 |
|
|
|
|
|
|
|