22,302
社区成员




SELECT
"client_SeekhapEHRSN" 心安EHR编号,
client_name 姓名,
client_sex 性别,
client_gidcardno 身份证,
client_cellno 手机号码,
client_blepdoctor 责任经理,
client_blephelper 健康管家,
(SELECT "emr_DTDorctor" FROM seekhap_emr_outpatient WHERE "emr_RecordTime" =(SELECT MAX("emr_RecordTime" ) FROM seekhap_emr_outpatient where ehr_seekhapsn ="client_SeekhapEHRSN")) 接诊医生,
(SELECT "emr_sampleManager" FROM seekhap_emr_outpatient WHERE "emr_RecordTime" =(SELECT MAX("emr_RecordTime" ) FROM seekhap_emr_outpatient where ehr_seekhapsn ="client_SeekhapEHRSN")) 基因解码业务经理,
(SELECT "emr_RecordTime" FROM seekhap_emr_outpatient WHERE "emr_RecordTime" =(SELECT MAX("emr_RecordTime" ) FROM seekhap_emr_outpatient where ehr_seekhapsn ="client_SeekhapEHRSN")) 接诊记录日期,
(SELECT COUNT("emr_RecordTime") FROM seekhap_emr_outpatient WHERE ehr_seekhapsn ="client_SeekhapEHRSN") 就诊记录次数 ,
(Select "fl_FollowCount" FROM seekhap_ehr_followup where "fl_FollowCount" =(Select max("fl_FollowCount") FROM seekhap_ehr_followup where ehr_seekhapsn= "client_SeekhapEHRSN") ) ,
(Select "fl_FollowTime" FROM seekhap_ehr_followup where "fl_FollowCount" =(Select max("fl_FollowCount") FROM seekhap_ehr_followup where ehr_seekhapsn= "client_SeekhapEHRSN") ) ,
(Select "fl_FollowRecorder" FROM seekhap_ehr_followup where "fl_FollowCount" =(Select max("fl_FollowCount") FROM seekhap_ehr_followup where ehr_seekhapsn= "client_SeekhapEHRSN") ) ,
(Select "fl_FollowMethod" FROM seekhap_ehr_followup where "fl_FollowCount" =(Select max("fl_FollowCount") FROM seekhap_ehr_followup where ehr_seekhapsn= "client_SeekhapEHRSN") )
FROM seekhap_ehr_client_baseinfo
LIMIT 100 OFFSET 0
string search_sqlcmd = @"SELECT ""client_SeekhapEHRSN"" 心安EHR编号,
client_name 姓名,
client_sex 性别,
client_gidcardno 身份证,
client_cellno 手机号码,
client_blepdoctor 责任经理,
client_blephelper 健康管家,
(
SELECT
""emr_RecordTime""
FROM
seekhap_emr_outpatient
WHERE
""emr_RecordTime"" = (
SELECT
MAX (""emr_RecordTime"")
FROM
seekhap_emr_outpatient
WHERE
ehr_seekhapsn = ""client_SeekhapEHRSN""
)
) 最近接诊日期,
(
SELECT
COUNT (""emr_RecordTime"")
FROM
seekhap_emr_outpatient
WHERE
/*
""emr_RecordTime"" = (
SELECT
MAX (""emr_RecordTime"")
FROM
seekhap_emr_outpatient
WHERE*/
ehr_seekhapsn = ""client_SeekhapEHRSN"" --)
) 就诊记录次数,
(
SELECT
""fl_FollowTime""
FROM
seekhap_ehr_followup
WHERE
""fl_FollowTime"" = (
SELECT
MAX (""fl_FollowTime"")
FROM
seekhap_ehr_followup
WHERE
ehr_seekhapsn = ""client_SeekhapEHRSN""
)
) 最近随访时间,
(
SELECT
""fl_FollowRecorder""
FROM
seekhap_ehr_followup
WHERE
""fl_FollowTime"" = (
SELECT
MAX(""fl_FollowTime"")
FROM
seekhap_ehr_followup
WHERE
ehr_seekhapsn = ""client_SeekhapEHRSN""
)
) 最近随访者,
(
SELECT
""fl_FollowMethod""
FROM
seekhap_ehr_followup
WHERE
""fl_FollowTime"" = (
SELECT
MAX (""fl_FollowTime"")
FROM
seekhap_ehr_followup
WHERE
ehr_seekhapsn = ""client_SeekhapEHRSN""
)
) 最近随访方式,
(
SELECT
COUNT (""fl_FollowCount"")
FROM
seekhap_ehr_followup
WHERE
ehr_seekhapsn = ""client_SeekhapEHRSN"" --)
) 随访次数
,client_doccreatedate 档案登记日期,
client_membershiplevel 会员等级,
client_type 会员类型,
client_level 客户等级,
client_sourcefrom 业务来源,
client_blpbiz 归属合作伙伴
,id 主键编号
FROM seekhap_ehr_client_baseinfo where (client_available='是')";
string searchtxtcdn= string.Format(@" (
""client_SeekhapEHRSN"" like '%{0}%' or
client_name like '%{0}%' or
client_sex like '%{0}%' or
client_gidcardno like '%{0}%' or
client_cellno like '%{0}%' or
client_blepdoctor like '%{0}%' or
client_blephelper like '%{0}%' or
----client_doccreatedate like '%{0}%' or
client_membershiplevel like '%{0}%' or
client_type like '%{0}%' or
client_level like '%{0}%' or
client_sourcefrom like '%{0}%' or
client_blpbiz like '%{0}%' or
client_volk like '%{0}%' or
----client_birth like '%{0}%' or
client_homeaddress like '%{0}%' or
client_liveaddress like '%{0}%' or
client_jobunit like '%{0}%' or
client_jobduty like '%{0}%' or
client_salary like '%{0}%' or
client_nlt like '%{0}%' or
client_origin like '%{0}%' or
client_edu like '%{0}%' or
client_marriage like '%{0}%' or
client_ghemrno like '%{0}%' or
client_contactperson like '%{0}%' or
client_contactphone like '%{0}%' or
client_contactrelation like '%{0}%' or
client_contactemail like '%{0}%' or
client_contactweichat like '%{0}%' or
client_contactqq like '%{0}%' or
client_contactalipay like '%{0}%'
)
", this.tc_ClientSearch.Text);
if (!string.IsNullOrEmpty(this.tc_ClientSearch.Text.Trim ()) )
{
//全表模糊搜索 搜索算法没做好**********
search_sqlcmd += " AND " + searchtxtcdn;
setcount_sql += " WHERE " + searchtxtcdn;
}
search_sqlcmd += string.Format(@" ORDER BY client_doccreatedate DESC
limit 100 offset ({0}-1)*100 ;", tc_nudPageSize.Value);
SELECT "client_SeekhapEHRSN" 心安EHR编号,
client_name 姓名, client_sex 性别,client_gidcardno 身份证, client_cellno 手机号码, client_blepdoctor 责任经理,client_blephelper 健康管家
,aa."emr_DTDorctor"
, aa."emr_sampleManager"
, aa."emr_RecordTime"
-- COUNT("emr_RecordTime") FROM seekhap_emr_outpatient WHERE "emr_RecordTime" =(SELECT MAX("emr_RecordTime" ) FROM seekhap_emr_outpatient where ehr_seekhapsn ="client_SeekhapEHRSN")) 就诊记录次数 ,
, ac."fl_FollowTime"
,"fl_FollowRecorder"
, "fl_FollowMethod"
,COUNT("fl_FollowCount")
FROM seekhap_ehr_client_baseinfo LEFT OUTER JOIN seekhap_emr_outpatient aa ON aa.ehr_seekhapsn= "client_SeekhapEHRSN"
LEFT OUTER JOIN seekhap_ehr_followup ac ON ac.ehr_seekhapsn= "client_SeekhapEHRSN"
WHERE
aa."emr_RecordTime" =(SELECT MAX(ad."emr_RecordTime" ) FROM seekhap_emr_outpatient ad where ad.ehr_seekhapsn =aa. ehr_seekhapsn)
AND
ac."fl_FollowTime" =(SELECT MAX( ab."fl_FollowTime") FROM seekhap_ehr_followup ab WHERE ab.ehr_seekhapsn=ac.ehr_seekhapsn)
GROUP BY "client_SeekhapEHRSN" ,
client_name , client_sex ,client_gidcardno , client_cellno , client_blepdoctor ,client_blephelper
,aa."emr_DTDorctor"
, aa."emr_sampleManager"
, aa."emr_RecordTime"
, ac."fl_FollowTime"
,"fl_FollowRecorder"
, "fl_FollowMethod"
只得到seekhap_ehr_followup 的有效8列数据, 仍然需要12秒
我要的效果是3100条,每个人不管有没有经历门诊或是随访,都要显示
还有人能理解这个查询吗
哪怕是做分页能实现接近500毫秒内的高效查询
SELECT "client_SeekhapEHRSN" 心安EHR编号,
client_name 姓名, client_sex 性别,client_gidcardno 身份证, client_cellno 手机号码, client_blepdoctor 责任经理,client_blephelper 健康管家,
(SELECT "emr_DTDorctor" FROM seekhap_emr_outpatient WHERE "emr_RecordTime" =(SELECT MAX("emr_RecordTime" ) FROM seekhap_emr_outpatient where ehr_seekhapsn ="client_SeekhapEHRSN")) 接诊医生,
(SELECT "emr_sampleManager" FROM seekhap_emr_outpatient WHERE "emr_RecordTime" =(SELECT MAX("emr_RecordTime" ) FROM seekhap_emr_outpatient where ehr_seekhapsn ="client_SeekhapEHRSN")) 基因解码业务经理,
(SELECT "emr_RecordTime" FROM seekhap_emr_outpatient WHERE "emr_RecordTime" =(SELECT MAX("emr_RecordTime" ) FROM seekhap_emr_outpatient where ehr_seekhapsn ="client_SeekhapEHRSN")) 接诊记录日期,
(SELECT COUNT("emr_RecordTime") FROM seekhap_emr_outpatient WHERE "emr_RecordTime" =(SELECT MAX("emr_RecordTime" ) FROM seekhap_emr_outpatient where ehr_seekhapsn ="client_SeekhapEHRSN")) 就诊记录次数 ,
(Select "fl_FollowTime" FROM seekhap_ehr_followup where "fl_FollowCount" =(Select MAX("fl_FollowTime") FROM seekhap_ehr_followup where ehr_seekhapsn= "client_SeekhapEHRSN") ) 随访时间 ,
(Select "fl_FollowRecorder" FROM seekhap_ehr_followup where "fl_FollowCount" =(Select MAX("fl_FollowTime") FROM seekhap_ehr_followup where ehr_seekhapsn= "client_SeekhapEHRSN") ) "随访者/基因经理",
(Select "fl_FollowMethod" FROM seekhap_ehr_followup where "fl_FollowCount" =(Select MAX("fl_FollowTime") FROM seekhap_ehr_followup where ehr_seekhapsn= "client_SeekhapEHRSN") ) 随访方式,
(Select COUNT("fl_FollowCount") FROM seekhap_ehr_followup where "fl_FollowCount" =(Select MAX("fl_FollowTime") FROM seekhap_ehr_followup where ehr_seekhapsn= "client_SeekhapEHRSN") ) 随访次数,
client_doccreatedate 档案登记日期, client_membershiplevel 会员等级, client_type 会员类型, client_level 客户等级, client_sourcefrom 业务来源, client_blpbiz 归属合作伙伴,
client_volk 民族, client_birth 出生, client_homeaddress 住址, client_liveaddress 现住址,client_jobunit 工作单位, client_jobduty 职务, client_salary 收入水平, client_nlt 常住类型, client_origin 籍贯, client_edu 学历, client_marriage 婚姻状况, client_ghemrno 国家健康档案编码,
client_contactperson 联系人, client_contactphone 联系电话, client_contactrelation 联系人关系, client_contactemail 电子邮件, client_contactweichat 微信,client_contactqq QQ, client_contactalipay 支付宝,
client_available 有效, id 主键编号
FROM seekhap_ehr_client_baseinfo where (client_available='是') ORDER BY client_doccreatedate DESC
--limit 100 offset (1-1)*50 ;
18秒 3100条数据,列表正确(SELECT "emr_DTDorctor" FROM seekhap_emr_outpatient WHERE "emr_RecordTime" =
(SELECT MAX("emr_RecordTime" ) FROM seekhap_emr_outpatient where ehr_seekhapsn ="client_SeekhapEHRSN")) 接诊医生,
这个只查了最近一次就诊时的时间,但是这个时间不一定是该病人的。
需要加上
ehr_seekhapsn ="client_SeekhapEHRSN" 变为
(SELECT "emr_DTDorctor" FROM seekhap_emr_outpatient WHERE ehr_seekhapsn ="client_SeekhapEHRSN" AND "emr_RecordTime" =
(SELECT MAX("emr_RecordTime" ) FROM seekhap_emr_outpatient where ehr_seekhapsn ="client_SeekhapEHRSN")) 接诊医生,