UNION ALL 的时候由于类型不一致返回地址

csdn_526654341 2018-01-09 07:59:02
sql语句:
<select id="findQuantityPrescription" resultType="map" parameterType="map">

SELECT CONCAT(count(1),'') prescriptionNum FROM (SELECT
count(1)
FROM casemanagement cm
INNER JOIN prescriptionrecord pd ON cm.id = pd.caseId
WHERE
1 = 1
<if test="doctorId != null and doctorId != '' ">
AND cm.doctorId = #{doctorId}
</if>
<if test="clinicId != null and clinicId != '' ">
AND cm.clinicId = #{clinicId}
</if>
<if test=" startTime == null or startTime == '' ">
AND pd.createTime BETWEEN CONCAT(DATE_FORMAT(now(),'%Y-%m'),'-01',' ','00:00:00')
AND CONCAT(DATE_FORMAT(now(),'%Y-%m-%d'),' ','23:59:59')
</if>
<if test=" startTime != null and startTime != '' ">
AND pd.createTime BETWEEN CONCAT(#{startTime},' ','00:00:00')
AND CONCAT(DATE_FORMAT(#{endTime},' ','23:59:59')
</if>
GROUP BY
pd.caseId) a

UNION ALL
SELECT CONCAT(count(1),'') diagnosisNum FROM casemanagement WHERE 1 = 1
<if test="doctorId != null and doctorId != '' ">
AND doctorId = #{doctorId}
</if>
<if test="clinicId != null and clinicId != '' ">
AND clinicId = #{clinicId}
</if>
<if test=" startTime == null or startTime == '' ">
AND createTime BETWEEN CONCAT(DATE_FORMAT(now(),'%Y-%m'),'-01',' ','00:00:00')
AND CONCAT(DATE_FORMAT(now(),'%Y-%m-%d'),' ','23:59:59')
</if>
<if test=" startTime != null and startTime != '' ">
AND pd.createTime BETWEEN CONCAT(#{startTime},' ','00:00:00')
AND CONCAT(DATE_FORMAT(#{endTime},' ','23:59:59')
</if>

UNION ALL
SELECT
CONCAT(
format (count(
CASE
WHEN cm.diagnosis = 'visit' THEN
'visit'
END
) * 100.0 / count(1),2
),'%')
revisit
FROM
casemanagement cm
WHERE 1 = 1
<if test="doctorId != null and doctorId != '' ">
AND doctorId = #{doctorId}
</if>
<if test="clinicId != null and clinicId != '' ">
AND clinicId = #{clinicId}
</if>
<if test=" startTime == null or startTime == '' ">
AND createTime BETWEEN CONCAT(DATE_FORMAT(now(),'%Y-%m'),'-01',' ','00:00:00')
AND CONCAT(DATE_FORMAT(now(),'%Y-%m-%d'),' ','23:59:59')
</if>
<if test=" startTime != null and startTime != '' ">
AND pd.createTime BETWEEN CONCAT(#{startTime},' ','00:00:00')
AND CONCAT(DATE_FORMAT(#{endTime},' ','23:59:59')
</if>
</select>

返回值:
"prescriptionNum": "[B@7dde2e9f",
"prescriptionNum": "[B@131d5600",
...全文
374 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
csdn_526654341 2018-01-09
  • 打赏
  • 举报
回复
已解决,原来是 SELECT 后面不能接sql的那些函数
csdn_526654341 2018-01-09
  • 打赏
  • 举报
回复
有没有人遇见过这种请况????

67,512

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧