我想按图表编号和日期排序。但是,对齐后将打印以下结果:
在我的代码中:
SELECT *
FROM (
SELECT id, chart_num, chart_name, MIN(DATE) AS DATE, amount, (COUNT(*) = 2) AS result, card_check
FROM (
(
SELECT id, hpd.chart_num AS chart_num, hpd.chart_name AS chart_name, hpd.visit AS DATE, card_amount_received AS amount, card_check_modify AS card_check
,row_number() over (PARTITION BY card_amount_received ORDER BY id) AS seqnum
FROM hospital_payment_data hpd
WHERE store_mbrno = '135790' AND card_amount_received > 0
)
UNION ALL (
SELECT id, ncd. chart_num AS chart_num, ncd. chart_name AS chart_name, DATE_FORMAT(ncd.tranDate,'%Y-%m-%d') AS DATA, amount, card_check_result AS card_check
,row_number() over (PARTITION BY amount ORDER BY id) AS seqnum
FROM noti_card_data ncd
WHERE (mbrNo = '135790' OR mbrNo = '135791') AND cmd ='승인'
)
) X
GROUP BY amount, seqnum
ORDER BY result DESC
) a
ORDER BY a.DATE DESC
我想要的结果是空值返回到最新的日期,如果有图表编号,我想按图表编号和日期的顺序排序。
2条答案
按热度按时间ctzwtxfj1#
感觉我在这个问题上遗漏了一些东西,但是你可以在
ORDER BY
用逗号。从您的文本中不清楚您是希望将日期分组在同一个图表中,还是希望将图表分组在同一个日期中,但是如果我猜错了,您可以交换它。此外,还有
ORDER BY result DESC
完全是多余的。它不会增加任何结果,通过删除它,我们可以消除整个嵌套级别。n9vozmp42#
不要在内部union all查询中按结果排序。按图表编号和日期代替结果排序。
所以代替了
使用此选项:
或者,
在外部主查询中:
代替
使用
希望有帮助。!