假设我有一个跨三个表有多个连接的查询:
SELECT
main_data.id,
main_data.dt,
main_data.seq_num,
main_data.sale_amt,
main_data.sale_cd,
promo.promo_cd,
payment.card,
payment.priority
FROM
main_data
INNER JOIN promo
ON promo.id = main_data.id
AND main_data.dt >= promo.start_dt
AND main_data.dt <= promo_end_dt
INNER JOIN payment
ON payment.sale_cd = main_data.sale_cd
AND payment.card = main_data.card
WHERE
main_data.dt BETWEEN '2013-10-12' AND '2013-10-12'
基本上,销售与付款方式 ( payment
) 和促销 ( promo
) 相关联。将促销代码映射到符合条件的付款(一对多关系)存在一些问题。
此时,可能存在来自 的重复记录main-data
。因此,我需要payment.priority
使用价值最低的那个。如何仅提取该字段值最低的行?我尝试将其嵌套为子查询,但无法使其正常工作。数据库本身是完全静态的,我无法以任何方式更改架构。