我有三张table
的数据
的
型
我希望获取APPT_NO、APPT_DATETIME、PATIENT_NO、PATIENT_FULL_NAME、TOTAL_COST,其中总费用等于一个预约记录的最大总费用
在APPT_SERV中,可以有多个行具有相同的APPT_NO
我是这么做的,但这是错误的
SELECT APPT_NO, APPT_DATETIME, PATIENT_NO,
(CASE WHEN NVL (PATIENT_FNAME, 'NULL') != 'NULL' THEN PATIENT_FNAME || ' ' ELSE '' END) || PATIENT_LNAME AS PATIENT_FULL_NAME,
NVL(SUM(APPTSERV_FEE), 0) + NVL(SUM(APPTSERV_ITEMCOST), 0) + NVL(SUM(SERVICE_STDFEE), 0) AS TOTAL_COST
FROM APPOINTMENT
JOIN PATIENT USING(PATIENT_NO)
JOIN APPT_SERV USING(APPT_NO)
JOIN SERVICE USING(SERVICE_CODE)
WHERE NVL(SUM(APPTSERV_FEE), 0) + NVL(SUM(APPTSERV_ITEMCOST), 0) + NVL(SUM(SERVICE_STDFEE), 0) =
(SELECT MAX(NVL(SUM(APPTSERV_FEE), 0) + NVL(SUM(APPTSERV_ITEMCOST), 0) + NVL(SUM(SERVICE_STDFEE), 0))
FROM APPOINTMENT
JOIN APPT_SERV USING(APPT_NO)
JOIN SERVICE USING(SERVICE_CODE)
GROUP BY APPT_NO);
字符串
1条答案
按热度按时间mzillmmw1#
这个怎么样?阅读代码中的注解。
我删除了所有使代码难以阅读的东西(
NVL
函数调用,CASE
表达式,... -稍后包括它们)。字符串