あいまいな質問に対する謝罪、これまでに質問されたことがある場合は、質問を明確にすることが難しくなりました。結合の結果を制限する
私は3つのテーブルを持っています。ロットおよびSalesorder、およびOrderLot:
Lot SKU CreationDate
-------------------------
1000-a 1000 2017-04-12
1000-b 1000 2017-04-13
2000-a 2000 2017-04-12
2000-b 2000 2017-04-13
SalesorderID Revenue
-----------------------------
1 $500
2 $250
3 $125
OrderLotID SalesorderID Lot
------------------------------
1 1 1000-a
2 1 2000-a
3 2 1000-b
4 2 2000-b
5 3 1000-a
私は私にSalesOrderでたくさんの作成日与えられた生成総収入を与える参加をしたいと思います。
たとえば、私は2017-04-12のCreationDateを使用して$ 625の結果を得たいと考えています(この日に1000-aと2000-aが作成され、 SalesorderID 1と3)。しかし、私が現在使用しているジョインは、Salesorder 1では2行、Salesorder 3では1行を返し、結果は$ 1125です。
OrderLotから返される行を制限して、一意のSalesorderの収益のみがカウントされるようにするにはどうすればよいですか?
おかげで、
ジェフ
編集。現在のクエリは次のとおりです。
select sum(so.revenue)
from salesorder so
inner join orderlot ol on so.lot = ol.lot
inner join lot l on ol.lot = l.lot
where l.creationdate = '2017-04-12'
訂正する必要があるものを理解するために試行されたクエリは役に立ちます – Degan
したがって、売上はsalesOrderID1で合計500であり、ロットごとにどのような収入があるのか分かりません。 – xQbert
修正します。実用上の問題は、生産日にどのくらいの収入を得たかということです。注文はロットで「満たされています」。だから私は、指定された日付に生産されたロットで満たされたすべての注文の収入を得る必要があります。 – JeffO