2017-10-25 10 views
-2

私は3つのテーブルを1つ持っていますSaleinfoTB 2番目のテーブルはStarReadingEndReadingであり、3番目のテーブルはSaleinfoTBテーブルのExpenseinfoTbです。私はTotalBill ColumnとStartReadingEndReadingテーブルを合計します。プラスサムとExpenseintoTB表からの分の両方のカラム量どのように結合するSQL Serverで集計関数を持つ3つのテーブル

選択SUM((SaleinfoTB.TotalBill)+ SUM(StartReadingEndReading.ActualSell)) - SaleinfoTB、SaleinfoTB、ExpenseinfoTB

から

(SUM(ExpenseinfoTB.Amount))

ここでSaleinfoTB.Date = StartReadingEndReading.ReadingD

とExpenseinfoTB.ExpenseDate = SaleinfoTB.Date

とExpenseinfoTB.ExpenseDate = StartReadingEndReading.ReadingDate

+0

あなたがしようとしていることをより明確に説明できますか?コードスニペットを投稿しても、あなたの質問に答えるための十分な情報は得られません。 – danjuggler

+0

まず、この問題についてはINNER JOINのような明示的なJOINSを使用してください....第2に、ここで問題は何ですか? – maSTAShuFu

+0

私の質問には申し訳ありませんが私は私の投稿を編集し、私の投稿についてのいくつかの情報を追加しました –

答えて

0

を食べた私は何をで取得していることは、あなたが追加を行う前に、各項目の合計値を取得する方法だと思います/減算

SELECT (ISNULL(SaleinfoTB.SumTotalBill,0) 
    + ISNULL(StartReadingEndReading.SumActualSell,0)) 
    - ISNULL(ExpenseinfoTB.SumAmount,0) 
FROM 
    (SELECT SUM(TotalBill) SumTotalBill, [Date] 
      FROM SaleinfoTB 
      Group By [Date])SaleinfoTB 
    INNER JOIN 
    (SELECT SUM(ActualSell) SumActualSell, ReadingDate 
      FROM StartReadingEndReading 
      Group By ReadingDate)StartReadingEndReading 
     ON SaleinfoTB.[Date]=StartReadingEndReading.ReadingDate 
    INNER JOIN 
    (SELECT SUM(Amount) SumAmount, ExpenseDate 
      FROM ExpenseinfoTB 
      Group By ExpenseDate)ExpenseinfoTB 
     ON ExpenseinfoTB.ExpenseDate=SaleinfoTB.[Date] 
+0

ありがとうございますそれは働いているが、結果データを表示しない –

+0

それは行を表示していますか?これらのテーブルの1つが常に日付の行を持つことが保証されていますか? INNER JOINをLEFT JOINに変更する必要があるかもしれませんが、どのテーブルにデータがあるかによって異なります。あなたの投稿を編集してサンプルデータを含めることができれば、おそらくもっと役立つでしょう。 – indiri

+0

ありがとうございました100% –

関連する問題