私はSQL要求または私のデータベース構造に問題があります。私はサプライヤー/顧客データベースを持っていたいと思います。価格の製品を注文し、変更することができる製品を販売したように、私は彼らの将来の統計に作成するために、各注文/売上に歴史を維持したいと思います。私は私のプロジェクトの先頭にだと6つの簡単な表を使用して:私は別のサプライヤーのご注文で同様の製品を持っているまで、すべてが正常に動作しているSQL要求の戻り誤った結果
Client | OrderC | OrderDetail
-----------------+------------------+--------------------------------------
Client_ID (Pk) | Order_ID (Pk) | OrderD_ID (Pk)
Name | Client_ID (Fk) | Order_ID (Fk)
| date | Product_ID (Fk)
| | Qty
| | PU_Vte (sales price)
| | For_Cmd_ID (Fk from For_ID-Cmd table Forever_cmd)
_________________|__________________|_____________________________________
|(supplier database)| (detail of supplier order)
Product | Forever_cmd | For_Ord_Detail
----------------+-------------------+----------------------------------------------------
Product_ID (Pk) | For_ID_CMD (Pk) | For_Det_Id (Pk)
Name | date |ID_cmd_For (Fk from For_ID-CMD on Forever_cmd table)
| |Product_ID (Fk source Product_ID on Product table)
| | Qte (= quantity)
| | PUHA (= supplier price)
。私のSQLリクエストの結果は、顧客のための余分な結果を作成します。
例:
Iは、異なる供給業者価格で同じ製品ID(P1)を含む2つのサプライヤ注文(S1およびS2)を作成します。私は顧客注文を作成し、S1から商品P1を販売することを選択します。
私は製品とクライアントでビューを取得すると、サプライヤーの順序からそれらを追跡するためにクエリを実行すると、結果は顧客に、すべてのサプライヤーの注文からすべての同様の製品を追加します。顧客が注文した製品だけではなく、
それは私のクエリまたはデータベースの一貫性のある場合、私は知りません。ここで
は私のSQL要求です:
SELECT C.Name,
O.order_id,
F.For_ID_CMD,
P.Name,
D.Qte,
D.PU_Vte,
X.PUHA
FROM Client AS C
JOIN OrderC O ON C.Client_ID = O.Client_ID
JOIN OrderDetail D ON O.Order_ID = D.Order_ID
JOIN For_Ord_Detail X ON D.Product_ID = X.Product_ID
JOIN Forever_Cmd F ON F.For_ID_CMD = X.ID_cmd_For
JOIN Product P ON D.Product_ID = P.Product_ID;
誰かが私を助けていただけますか?
サンプルテーブルのデータと予想される結果を追加します。 (フォーマットされていないテキストとして、画像ではありません) – jarlh
SQLの味とバージョンは? – Shawn
こんにちは、私はSQL ExpressとSQL管理スタジオを使用しています17.2 –