我已經得到了多數民衆贊成讓我的大腦融化一個非常複雜的查詢。選擇這樣或那樣的但不能同時
SELECT abunchOfStuff, r.xyz as netsell
FROM normalmtm n
JOIN mtmprogram m ON (
m.mtmprogram = n.loanprogram
AND m.investor = 'Xyzzy'
)
JOIN rates as r on (
r.term >= '2012-01-01'
AND r.investor = m.investor
AND r.rate = n.rate
AND r.program = m.basenormal
AND r.clientcode = n.clientcode
)
LEFT OUTER JOIN mtmadjustments as ad ON (
ad.loannumber = n.loannumber
AND ad.investor = m.investor
)
WHERE n.loannumber = '12345678'
AND n.clientcode = 10
ORDER BY netsell DESC LIMIT 1
這是從一堆他們中選擇最大的netsell。現在,我不能完全理解的棘手部分是rates表可能會或可能不會匹配n.clientcode。如果它不匹配,我想使用0的客戶端代碼,它本質上是一個通配符。
現在我做clientcode具體的查詢,如果它沒有返回我與clientcode = 0這樣了查詢...它好像我可以換這兩個東西放在一起莫名其妙。
我看着EXISTS或NOT EXISTS子查詢,但我無法弄清楚如何在這個例子中使用它,我什至不知道它會是合適的。
任何幫助表示讚賞!
所以如果在利率沒有記錄與該客戶端的代碼,用於該投資者,速度和程序和客戶端代碼0的速度? – Stu
看起來像你的標題是誤導性的。你不是選擇其中的一個,而是將'r.clientcode'與一個值或另一個值進行比較,是正確的? –