ホーム>source

私はselectステートメントを使用して、これまでのところ、月ごとに請求書の値を引き出しています。列を追加して、月ごとに異なるターゲットを表示しようとしています。したがって、毎週または毎月の目標と実際の値を比較できます。 Target値を他の場所に保存する必要はないと思います。以下のクエリは毎月260000回繰り返されますが、これを毎月異なる通貨値に変更したり、答えがまだ不明な場合にゼロを表示するにはどうすればよいですか?

<前>ウィズウィズ

これにより、

理想的には、結果は以下のようなものになります:

<前>ウィズウィズ SELECT FORMAT (SUM(dbo.ARInvoices.arpInvoiceSubtotalBase), 'C0') AS "Total" , DATEPART(month, dbo.ARInvoices.arpInvoiceDate) as "Month" , '260000' AS TARGET FROM dbo.ARInvoices WHERE dbo.ARInvoices.arpInvoiceDate >= '{%Current Year%}' GROUP BY DATEPART(month, dbo.ARInvoices.arpInvoiceDate)
あなたの答え
  • 解決した方法 # 1

    派生テーブル/サブクエリ/ cteを使用して毎月の合計を計算し、次に JOIN  ターゲットテーブルに

    <前>ウィズウィズ SELECT A.Total, A.Month, T.Target FROM ( SELECT SUM(dbo.ARInvoices.arpInvoiceSubtotalBase) AS Total , DATEPART(month, dbo.ARInvoices.arpInvoiceDate) as Month FROM dbo.ARInvoices WHERE dbo.ARInvoices.arpInvoiceDate >= '{%Current Year%}' GROUP BY DATEPART(month, dbo.ARInvoices.arpInvoiceDate) ) A LEFT JOIN dbo.Targets T ON A.Month = T.Month

関連記事

  • 前へ java - JPAクエリ:サブクエリをグループ化条件に結合する
  • 次へ php - jpgファイルがlaravel 51でtmpとして保存される理由