2015-08-09 32 views
0

查詢只執行這是不正確見下文鑑於最新的存儲值由組ID的

pid customer id invoice id  name due amount make payment 

1  1001   086 sasi  36  sasi  10 
5  1003   084 ram  100  ram  50 
7  1002   083 koushil 80  am   50 

查詢另一個例子是

SELECT * FROM print_reciept PR INNER JOIN ( SELECT INVOICE_ID,MIN(PID)AS min_pid FROM print_reciept WHERE due_amount!= 0 GROUP BY INVOICE_ID )T ON pr.invoice_id = t.invoice_id AND pr.pid = t.min_pid WHERE due_amount!= 0;

看到這又例如

pid customer id invoice id name due amount make_pay paid_amount 

1  1001   086 sasi  36  sasi  10 
2  1001   086 sasi  26  ram  5 
3  1001   086 sasi  21  ravi  10 
4  1001   086 sasi  11  sasi  10  
5  1003   084 ram  100  ram  50 
6  1003   084 raghu  50  sasi  10 
7  1002   083 koushil 80  am   50 
8  1002   083  koushil 30  am  20 

這是我的結果,但我已經在同一ID使用發票ID支付到期6量086

我需要導致

pid customer id invoice id  name due amount make payment 

4  1001   086  sasi   11  sasi  10 
6  1003   084  raghu   50  sasi  10 
8  1002   083  koushil  30  am  20 
+0

有一些列'選擇'樣本中沒有定義的陳述。這些列和它的數據在哪裏? – Noman

+0

所有列都是視圖,但不會更改列invoice_id,cust_id,cust_name,更改列pid是自動增量,invoice_date,paid_amount,paymentmade,makeapayment,due_amount,支付一定數額後創建另一行我需要查看新行 – sasi

+0

您應該添加與您的問題的第二行相同的另一列示例的數據。所以我們可以幫助你。 – Noman

回答

0

我米不知道我正確理解你。

如果你想獲得的invoice_id = 086最後一個值:

SELECT pid, cust_id, cust_name, date, invoice_id, invoice_date, 
    invoice_amount, paid_amount, paymentmade, makeapayment, due_amount, status 
FROM print_reciept 
WHERE invoice_id = 086 
    AND due_amount != 0 
ORDER BY pid DESC 
LIMIT 1; 

如果你想獲得每個invoice_id的最後一個值:

SELECT * 
FROM print_reciept pr 
    INNER JOIN 
    (
     SELECT invoice_id, MIN(pid) AS min_pid 
     FROM print_reciept 
     WHERE due_amount != 0 
     GROUP BY invoice_id 
    ) t ON pr.invoice_id = t.invoice_id AND pr.pid = t.min_pid 
WHERE due_amount != 0; 
+0

沒有得到結果看到這個例子[編輯] – sasi

0
SELECT * 
FROM print_reciept pr 
    INNER JOIN 
    (
     SELECT invoice_id, MAX(pid) AS min_pid 
     FROM print_reciept 
     WHERE due_amount != 0 
     GROUP BY invoice_id 
    ) t ON pr.invoice_id = t.invoice_id AND pr.pid = t.min_pid 
WHERE due_amount != 0;