2016-03-20 12 views
-1

Satır toplamını hesaplayabilen aşağıdaki kodum var, ancak şimdi satır toplamı sıfırsa satırı nasıl gizlemek istiyorum, nasıl yapmalı?php/mysql, satır toplamı sıfırsa satırlar nasıl gizlenir?

SELECT * , 
    Client.client_chi_name, 
    Client.client_eng_name, 
    SUM(shares_no) AS sub_shares, 
    (select sum(shares_no) FROM Shareholder 
     LEFT OUTER JOIN Client ON Shareholder.client_id = Client.client_id 
     WHERE Shareholder.com_no = '2040628') as total_shares 
FROM Shareholder 
LEFT OUTER JOIN Client ON Shareholder.client_id = Client.client_id 
WHERE Shareholder.com_no = '2040628' 
GROUP BY Shareholder.client_id 
ORDER BY sub_shares DESC, 
Shareholder.date_of_register DESC 
picture to hide zero rows

önceden yardım & destek için çok teşekkür ederiz!

cevap

0

Sadece HAVING clause

Eğer sıfır olduğu total_shares filtrelemek için olduğu düşünüldüğünde kullanın: o Having 'kullanmak mümkün değilse

. 
. 
GROUP BY Shareholder.client_id 
HAVING total_shares > 0 
ORDER BY sub_shares DESC, 
. 
. 
0

bunu kullanmalıdır.

. . GROUP BY ... HAVALANDIRMA toplam değeri> 0 . .

Ancak, bu kadar kolay bir soru sorduğunuz için, SQL'de çok zorlanmadığınızı düşünüyorum. Yani, 'where' maddesini kullanabilirsin. Daha sonra yavaş çalışacak ve iyi bir yaklaşım olmayacak, ancak kesinlikle

select * from 
(SELECT * , 
    Client.client_chi_name, 
    Client.client_eng_name, 
    SUM(shares_no) AS sub_shares, 
    (select sum(shares_no) FROM Shareholder 
     LEFT OUTER JOIN Client ON Shareholder.client_id = Client.client_id 
     WHERE Shareholder.com_no = '2040628') as total_shares 
FROM Shareholder 
LEFT OUTER JOIN Client ON Shareholder.client_id = Client.client_id 
WHERE Shareholder.com_no = '2040628' 
GROUP BY Shareholder.client_id 
ORDER BY sub_shares DESC, 
Shareholder.date_of_register DESC 
) 
where shares_no >0