- 論壇徽章:
- 0
|
四列acc_no, total_price, order_id, order_date,一個(gè)表, order_main
數(shù)據(jù)類似于:
acc_no total_price order_id order_date
1 300 20 2009-01-09
2 3245 22 2007-01-09
3 98 63 2008-11-09
2 44442 53 2009-09-09
1 234 34 2009-12-09
....
....
如果只要acc_no與total_price也就簡(jiǎn)單了,直接
SELECT acc_no, max( total_price )
FROM po.order_main WHERE order_id >0
AND acc_no IS NOT NULL AND order_date > "2007-01-01" GROUP BY acc_no ORDER BY acc_no
也就夠了。
不過(guò)現(xiàn)在還想要另外兩列
order_id,
order_date的信息。
直接把這兩列附在上面的sql后面是不行的。
所以只有用另外的辦法,not exists 如:
SELECT a.acc_no, a.total_price, a.order_id, a.order_date
FROM po.order_main AS a
WHERE NOT
EXISTS (SELECT *
FROM po.order_main
WHERE total_price > a.total_price
AND acc_no = a.acc_no
)
AND a.order_date > "2007-01-01" AND a.order_id >0 AND a.acc_no IS NOT NULL ORDER BY a.acc_no
這樣據(jù)說(shuō)是理想的結(jié)果。
不過(guò)有些客戶訂單的總價(jià)一直是10,就沒有出現(xiàn)這個(gè)sql的結(jié)果中(在第一個(gè)sql的結(jié)果中出現(xiàn)了)
所以這個(gè)sql的結(jié)果不全
怎么改才能把那些訂單總價(jià)都相同的客戶也包括進(jìn)來(lái)呢?
牛人也順便解決下not exists的用法吧。
謝謝 |
|