私はこの種の複雑な結合と合計関数に非常に慣れていません。同じフィールドを持つ 2 つのテーブル クエリがありました。1 番目(i.e: ProdID, ProdName, NetQty, Unit)
のクエリにはOpStockが含まれ、2番目のクエリにはPurchaseが含まれます。
現在の在庫を確認できるように、この 2 つのテーブル クエリを追加して 1 つのテーブルを作成したいと考えています。
1 番目のテーブルのデータは次のようになります。
ProdID ProdName Qty
100 Rose 700
101 Lilly 550
103 Jasmine 600
105 Lavender 400
2 番目のテーブルのデータは次のようになります。
ProdID ProdName Qty
100 Rose 400
101 Lilly 250
104 Lotus 1000
106 MariGold 400
3 番目のテーブルの最終データは次のようになります。
ProdID ProdName Qty
100 Rose 1100
101 Lilly 800
103 Jasmine 600
104 Lotus 1000
105 Lavender 400
106 MariGold 400
Access2003のSQLを使用してこれを達成するにはどうすればよいですか。ありがとう。
私は非常に申し訳ありませんCiaran、これは純粋にvb.netに使用されるアクセスですこれが私のアクセスクエリです1
SELECT sp_OpenIandP_Prod.ProdID,
sp_OpenIandP_Prod.ProdName,
Sum(([sp_OpenIandP_Prod.SumOfNetQty]-[sp_OpenSales_Prod.SumOfNetQty])) AS NetQty,
sp_OpenIandP_Prod.UnitSName
FROM sp_OpenIandP_Prod
INNER JOIN sp_OpenSales_Prod ON sp_OpenIandP_Prod.ProdID=sp_OpenSales_Prod.ProdID
GROUP BY sp_OpenIandP_Prod.ProdID,
sp_OpenIandP_Prod.ProdName,
sp_OpenIandP_Prod.UnitSName;
最初のクエリ結果は次のようになります。
ProdID ProdName NetQty UnitSName
1 Rose 0 Kgs
2 Lilly 7125 Mts
3 Lotus 12374 Nos
2 番目のクエリは次のとおりです。
SELECT Products.ProdID, Products.ProdName,
Sum(OPDDetails.NetQty) AS SumOfNetQty, Units.UnitSName
FROM Units
INNER JOIN (Products
INNER JOIN (Brands
INNER JOIN OPDDetails ON Brands.BrID=OPDDetails.BrandID)
ON Products.ProdID=Brands.ProdID)
ON Units.UnitID=Products.UnitID
WHERE (((OPDDetails.PurID)>0)
AND ((OPDDetails.OPDDate)>=[StartDate] And (OPDDetails.OPDDate)<=[EndDate]))
GROUP BY Products.ProdID, Products.ProdName, Units.UnitSName;
結果セットは次のようになります。
ProdID ProdName SumOfNetQty UnitSName
1 Rose 1800 Kgs
2 Lilly 21000 Mts
上記の結果は簡単に得られました。しかし、次のように取得するのはそれほど簡単ではありません。
ProdID ProdName SumOfNetQty UnitSName
1 Rose 1800 Kgs
2 Lilly 28125 Mts
3 Lotus 12374 Nos
それで全部です。再度、感謝します。