2016-03-20 12 views
0

私はobを報告しています。この報告書では、特定の日に出納係の合計を知っていますが、私はSQLステートメントを書いていますが、このステートメントを返します。テーブル。この私のSQLステートメント:MySQLのステートメント返す重複する行

select DISTINCT 
tblcashiers.CashierName, 
IFNULL(tblcashieropeningbalance.Mount, 0) as COB, 
IFNULL(tblcashdeposit.Mount, 0) as CD, 
IFNULL(tblbankcashiertransfer.Mount, 0) as BCT, 
IFNULL(tblsupplierrefund.Refund, 0) as SPR , 
IFNULL(tblcustomrefund.Refund , 0) as CUR, 
IFNULL(tblcashpayments.Mount, 0) as CP, 
IFNULL(tblcashiertransfer.Mount, 0) as CT, 
IFNULL(tblcashiertransfer.Mount, 0) as CT2, 
IFNULL(tblcustomerrefund.Refund, 0) as CR, 
IFNULL(tblcashierbanktransfer.Mount, 0)as CBT, 
IFNULL(tblexpenses.Mount, 0)as EX, 
IFNULL(tblcustomespayment.Mount, 0)as CUSP 

from tblcashiers 
LEFT JOIN tblcashdeposit on tblcashiers.CashierID = tblcashdeposit.CashierID 
LEFT JOIN tblbankcashiertransfer on tblcashiers.CashierID = tblbankcashiertransfer.CashierID 
LEFT JOIN tblsupplierrefund on tblcashiers.CashierID = tblsupplierrefund.CashierID 
LEFT JOIN tblcustomrefund on tblcashiers.CashierID = tblcustomrefund.CashierID 
LEFT JOIN tblcashpayments on tblcashiers.CashierID = tblcashpayments.CashierID 
LEFT JOIN tblcustomerrefund on tblcashiers.CashierID = tblcustomerrefund.CashierID ='2' 
LEFT JOIN tblcashierbanktransfer on tblcashiers.CashierID = tblcashierbanktransfer.CashierID 
LEFT JOIN tblcashiertransfer on tblcashiers.CashierID = tblcashiertransfer.FromCashierID 
LEFT JOIN tblcashiertransfer as tblcashiertransfer2 on tblcashiers.CashierID = tblcashiertransfer2.ToCashierID 
-- LEFT JOIN tblcashiers as tblcashiers on tblcashiers.CashierID = tblcashiers.CashierID 
LEFT JOIN tblcashieropeningbalance on tblcashieropeningbalance.CashierID = tblcashiers.CashierID 
LEFT JOIN tblexpenses as tblexpenses on tblcashiers.CashierID = tblexpenses.CashierID 
LEFT JOIN tblcustomespayment as tblcustomespayment on tblcashiers.CashierID = tblcustomespayment.CashierID 
where tblcashiers.CashierID = 2 

and tblcashdeposit .TransDate >= '2016-01-01' 
and tblcashdeposit .TransDate <= '2016-03-01' 

GROUP BY tblcashieropeningbalance.TransDate, 
tblcashdeposit.TransDate, tblbankcashiertransfer.TransDate, 
tblsupplierrefund.RefundDate, tblcashpayments.TransDate, 
tblcustomerrefund.RefundDate, tblcashierbanktransfer.TransDate, 
tblcashiertransfer.TransDate, tblcashiertransfer.TransDate, 
tblexpenses.TransDate,tblcustomespayment.TransDate 

どうすればこの問題を解決できますか?

答えて

-1

クエリからGROUP BYを削除します。 GROUP BYは、通常の列とSELECTの集約関数を混在させる場合にのみ使用されます。クエリに集計関数(min、max ...)が含まれていないため、GROUP BYは必要ありません。

関連する問題