34,594
社区成员
发帖
与我相关
我的任务
分享
SELECT dess.EMR_Code , H.isRead, 'Remark' as RecordType,H.CreateByPlatform,
dess.doctorRemark AS 'message' ,
dess.createDate
FROM dbo.doctor_essays dess
LEFT join dbo.simple_EMR E on dess.EMR_Code=E.EMR_Code
LEFT join EMR_ProcessUReadMessage H on H.EMR_Code=dess.EMR_Code
WHERE dess.EMR_Code = '201707130001' and H.CreateByPlatform='Doctor'
AND dess.flag = 1
SELECT distinct *
FROM (
SELECT e.patient_Name as patientName,e.patient_Sex as patientSex,e.patient_Tel as patientTel, es.EMR_Code , H.isRead, 'Process' as RecordType,H.CreateByPlatform,
es.message ,
es.createDate ,
CASE WHEN d.userRealName IS NULL
OR d.userRealName = ''
THEN CASE WHEN f.factoryName IS NULL
OR f.factoryName = ''
THEN CASE WHEN der.userRealName IS NULL
OR der.userRealName = ''
THEN es.Designer
END
ELSE f.factoryName
END
ELSE d.userRealName
END AS doctorName
FROM dbo.EMR_stream es
LEFT JOIN dbo.doctors d ON d.Id = es.createId
AND d.flag = 1
LEFT JOIN dbo.factory f ON f.Id = es.createId
AND f.flag = 1
LEFT JOIN dbo.designers der ON der.Id = es.createId
AND der.flag = 1
LEFT join dbo.simple_EMR E on es.EMR_Code=E.EMR_Code
Left Join EMR_ProcessUReadMessage H on H.EMR_Code=es.EMR_Code
WHERE es.EMR_Code = '201707130001' and H.CreateByPlatform='Doctor'
AND es.flag = 1
UNION
SELECT e.patient_Name,E.patient_Sex,e.patient_Tel, dess.EMR_Code , H.isRead, 'Remark' as RecordType,H.CreateByPlatform,
dess.doctorRemark AS 'message' ,
dess.createDate ,
CASE WHEN d.userRealName IS NULL
OR d.userRealName = ''
THEN CASE WHEN der.userRealName IS NULL
OR der.userRealName = '' THEN isnull(dess.Designer,'作者')
ELSE der.userRealName
END
ELSE d.userRealName
END AS doctorName
FROM dbo.doctor_essays dess
LEFT JOIN dbo.doctors d ON d.Id = dess.createId
AND d.flag = 1
LEFT JOIN dbo.designers der ON der.Id = dess.createId
AND der.flag = 1
LEFT join dbo.simple_EMR E on dess.EMR_Code=E.EMR_Code
LEFT join EMR_ProcessUReadMessage H on H.EMR_Code=dess.EMR_Code
WHERE dess.EMR_Code = '201707130001' and H.CreateByPlatform='Doctor'
AND dess.flag = 1
) a
ORDER BY a.createDate ASC
--测试数据
if not object_id(N'Tempdb..#EMR_ProcessUReadMessage') is null
drop table #EMR_ProcessUReadMessage
Go
Create table #EMR_ProcessUReadMessage([EMR_Code] bigint,[CreateByPlatform] nvarchar(28),[IsRead] int)
Insert #EMR_ProcessUReadMessage
select 201707130001,N'Doctor',1 union all
select 201707130001,N'Desgin',0 union all
select 201707130001,N'Medicine',1 union all
select 201707130001,N'Doctor',0 union all
select 201707130001,N'Desgin',0 union all
select 201707130001,N'Medicine',1
GO
if not object_id(N'Tempdb..#doctor_essays') is null
drop table #doctor_essays
Go
CREATE TABLE #doctor_essays([EMR_Code] bigint,doctorRemarkDate DATETIME,doctorRemark NVARCHAR(100))
Insert #doctor_essays
select 201707130001,'2017.07.14 14:19:00',N'添加一条未读信息' union all
select 201707130001,'2017.07.14 14:08:42',N'测试未读'
GO
if not object_id(N'Tempdb..#simple_EMR') is null
drop table #simple_EMR
Go
Create table #simple_EMR([EMR_Code] bigint,[patient_Name] nvarchar(31),[patient_Age] Date,[patient_Sex] bigint,[patient_Tel] bigint)
Insert #simple_EMR
select 201707130001,N'测试医学服务中心New','2017-08-16',1,15221105698
Go
--测试数据结束
;WITH ctea AS (
SELECT *,ROW_NUMBER()OVER(PARTITION BY [EMR_Code],[CreateByPlatform] ORDER BY (SELECT 1)) AS num FROM #EMR_ProcessUReadMessage
),cteb AS (
SELECT *,ROW_NUMBER()OVER(PARTITION BY [EMR_Code] ORDER BY doctorRemarkDate) AS num FROM #doctor_essays
)
SELECT dess.EMR_Code ,
H.isRead ,
'Remark' AS RecordType ,
H.CreateByPlatform ,
dess.doctorRemark AS 'message'
FROM cteb dess
LEFT JOIN #simple_EMR E ON dess.EMR_Code = E.EMR_Code
LEFT JOIN ctea H ON H.EMR_Code = dess.EMR_Code AND H.num = dess.num
WHERE dess.EMR_Code = '201707130001'
AND H.CreateByPlatform = 'Doctor'
SELECT DISTINCT
dess.EMR_Code ,
H.isRead ,
'Remark' AS RecordType ,
H.CreateByPlatform ,
dess.doctorRemark AS 'message' ,
dess.createDate
FROM dbo.doctor_essays dess
LEFT JOIN dbo.simple_EMR E ON dess.EMR_Code = E.EMR_Code
LEFT JOIN EMR_ProcessUReadMessage H ON H.EMR_Code = dess.EMR_Code
WHERE dess.EMR_Code = '201707130001'
AND H.CreateByPlatform = 'Doctor'
AND dess.flag = 1;
--测试数据
if not object_id(N'Tempdb..#EMR_ProcessUReadMessage') is null
drop table #EMR_ProcessUReadMessage
Go
Create table #EMR_ProcessUReadMessage([EMR_Code] bigint,[CreateByPlatform] nvarchar(28),[IsRead] int)
Insert #EMR_ProcessUReadMessage
select 201707130001,N'Doctor',1 union all
select 201707130001,N'Desgin',0 union all
select 201707130001,N'Medicine',1 union all
select 201707130001,N'Doctor',1 union all
select 201707130001,N'Desgin',0 union all
select 201707130001,N'Medicine',1
GO
if not object_id(N'Tempdb..#doctor_essays') is null
drop table #doctor_essays
Go
CREATE TABLE #doctor_essays([EMR_Code] bigint,doctorRemarkDate DATETIME,doctorRemark NVARCHAR(100))
Insert #doctor_essays
select 201707130001,'2017.07.14 14:19:00',N'添加一条未读信息' union all
select 201707130001,'2017.07.14 14:08:42',N'测试未读'
GO
if not object_id(N'Tempdb..#simple_EMR') is null
drop table #simple_EMR
Go
Create table #simple_EMR([EMR_Code] bigint,[patient_Name] nvarchar(31),[patient_Age] Date,[patient_Sex] bigint,[patient_Tel] bigint)
Insert #simple_EMR
select 201707130001,N'测试医学服务中心New','2017-08-16',1,15221105698
Go
--测试数据结束
SELECT DISTINCT dess.EMR_Code ,
H.IsRead ,
'Remark' AS RecordType ,
H.CreateByPlatform ,
dess.doctorRemark AS 'message'
FROM #doctor_essays dess
LEFT JOIN #simple_EMR E ON dess.EMR_Code = E.EMR_Code
LEFT JOIN #EMR_ProcessUReadMessage H ON H.EMR_Code = dess.EMR_Code
WHERE dess.EMR_Code = '201707130001'
AND H.CreateByPlatform = 'Doctor';