2014-06-27 80 views
0

我使用此查詢來獲取:從tblcustomers 客戶名稱 transactionamount的總和從tbltransactions針對每個客戶如何在mysql查詢中獲得想要的結果?

select a.customerid, sum(transactionamount) as transactionamount ,b.customername 
from tbltransactions a 
join tblcustomers b using (customerid) 
group by a.customerid 
order by b.customername 

的coloumn transactionamounttbltransactions包含了客戶購買和負值客戶支付正值。

如何在此查詢中獲得此表達式min(transactionamount)< 0對於每個客戶

編輯:分鐘(transactionamount)< 0給我的每一個客戶迄今所支付的最高金額

+0

解釋通過的話你的意圖,你的嘗試並不清楚你想要什麼。 – zerkms

+0

'有MAX(transactionamount)<0' groupy由可能工作 – Rufinus

回答

1

爲此,您可以使用條件彙總:

select a.customerid, sum(transactionamount) as transactionamount, b.customername, 
     min(case when transactionamount < 0 then transactionamount end) as BiggestPayment 
from tbltransactions a join 
    tblcustomers b 
    using (customerid) 
group by a.customerid 
order by b.customername; 

注意的最小值小於0實際上是最小值不是最大值。

編輯:

substring_index(group_concat((case when transactionamount < 0 then transactionamount end) 
           order by transactiondate desc 
          ), ',', 1) 
+0

完美的解決方案感謝後 – user3762808

+0

我們怎麼能進一步修改此查詢找到最新的transactionId其中transactionamount <0 ????在此先感謝 – user3762808

+0

哪裏適合這一個在查詢中...我是新來的sql :) – user3762808

0

你想這樣的:

在這種情況下,我會使用substring_index()/group_concat()招找到最新的付款日期?

select a.customerid, sum(transactionamount) as transactionamount ,b.customername 
from tbltransactions a 
join tblcustomers b using (customerid) 
group by a.customerid 
having max(transactionamount) < 0 
order by b.customername 

僅向客戶支付僅付款?

最好的問候, 內博伊沙

相關問題