sql - 多订单应该怎么做?
问题描述
我想按chart_num 和DATE 排序。但是,对齐时会打印出以下结果:
在我的代码中:
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
我想要的结果是NULL值回到最新的DATE,如果有chart_num,我想按照chart_num和DATE的顺序排序。
解决方案
不要在内部联合所有查询中按结果排序。按chart_num 和日期代替结果排序。
所以代替
Order by result desc
用这个:
Order by chart_num desc, DATE desc
或者,
在外部主查询中:
代替
Order by a.DATE DESC
利用
Order by a.chart_num desc, a.DATE desc
希望能帮助到你。!
推荐阅读
- audio - 如何标准化正在进行的累积和的样本?
- javascript - 如何禁用提交按钮,直到所有输入类都有 class="valid"
- java - Micronaut,db-scheduler:当前不存在事务。考虑在周围的方法上声明@Transactional
- javascript - 使用 bgcolor 隐藏所有表格行
- numpy - .T 在 np.vstack 函数中是什么意思?
- python - TF.Keras中自定义model.fit的梯度累积?
- django - Django,通过多个值获取对象
- javascript - 是否仍然推荐使用基于类的组件作为标准工业实践
- apache-flink - 为什么我的 Flink 窗口使用这么多状态?
- google-analytics - 谷歌分析报告在设置推荐排除列表和过滤器后减少会话,增加平均会话持续时间