我有一個包含3行的表:AccountNum,InvoiceAcc和Blocked。大多數行我的表都有一個InvoiceAcc但不是全部。 AccountNum是唯一的標識符,它可能爲許多AccountNum擁有相同的InvoiceAcc。被阻止是一個int值,從0,1和2變化。SQL - 使用子選擇
InvoiceAcc是基於AccountNum的,因此可以將其視爲父辦公室,然後繼續處理子辦公室。
例如,原單位,像這樣:
AccountNum - 1, InvoiceAcc - null, Blocked - 2
可能有一個孩子辦事處,像這樣:
AccountNum - 1-1, InvoiceAcc - 1, Blocked - 0
AccountNum - 1-2, InvoiceAcc - 1, Blocked - 1
我希望做的是檢查行和其隨後的InvoiceAcc AccountNum被屏蔽的值。因此,在我上面的例子,如果我做了查詢,像這樣:
SELECT BLOCKED FROM CustTable WHERE AccountNum = '1-1'
它會返回0,因爲這是阻塞的價值。我希望它做的是返回2,因爲它具有較高的價值和它的父帳戶。另外,如果家長acc的阻塞值爲1,並且我查詢的子帳戶的阻塞值爲2,那麼它應該返回2.我假設在這裏需要子選擇?
它返回的最高值阻塞在任本身或其父母的賬戶,如果它有一個父帳戶
這對於accno = 1也是靜態的 – SMK 2012-04-10 11:28:03
Nop,不是如果我用一個參數替換它,或者甚至完全刪除它,因爲這將顯示每個客戶的最高塊值 – CallumVass 2012-04-10 11:34:25