ACCESSのクエリで実行結果が上手く返らない
商品在庫とそれぞれの賞味期限についてAccessで管理しようと思っているのですが、多々上手くいかないところがあり困っています。
今回質問させて頂きたいのはクエリに関してです。
以下のようにテーブル、リレーションシップ、クエリを作成していますが、実行しても結果が一件も返ってきません。
データはtblItem_Infoに約1000件、tblItem_Listに約1700件入っています。tblTransactionsと tblReceive とtblIssueには動作テストのための数件のみです。
リレーションを組むところから知識不足でお恥ずかしいのですが、原因また解決方法を教えていただけないでしょうか?
アスタリスク付きのフィールドが主キーです。
テーブル:tblItem_Info
フィールド:*Item_ID , Description , Shelf_Life
テーブル:tblItem_List
フィールド:*Transaction_ID , Item_ID, Inventory_Qty, Production_Date
テーブル:tblTransactions
フィールド:*ID , Transaction_ID , Receive_ID , Issue_ID , Receive_Qty , Issue_Qty
テーブル:tblReceive
フィールド:*Receive_ID , Receive_Date
テーブル:tblIssue
フィールド:*Issue_ID , Issue_Date
リレーションは全て参照整合性にチェックで以下のようになっています。
tblItem_InfoのItem_ID - tblItem_ListのItem_ID
tblItem_ListのTransaction_ID - tblTransactionsのTransaction_ID
tblReceiveのReceive_ID - tblTransactionsのReceive_ID
tblIssueのIssue_ID - tblTransactionsのIssue_ID
クエリはデザインビューで作成したものをSQLに直すと長いですが以下のようになりました。
SELECT tblItem_List.Item_ID, tblItem_Info.Description, Sum(Nz([tblItem_List.Inventory_Qty],0)+Nz([tblTransactions.Receive_Qty],0)-Nz([tblTransactions.Issue_Qty],0)) AS On_Hand, Sum(tblTransactions.Receive_Qty) AS SumOfReceive_Qty, Sum(tblTransactions.Issue_Qty) AS SumOfIssue_Qty, tblItem_List.Production_Date, tblItem_Info.Shelf_Life, DateValue([tblItem_List.Production_Date]+[tblItem_Info.Shelf_Life]) AS Expiration_Date
FROM tblReceive INNER JOIN (tblItem_Info INNER JOIN (tblIssue INNER JOIN (tblItem_List INNER JOIN tblTransactions ON tblItem_List.Transaction_ID = tblTransactions.Transaction_ID) ON tblIssue.Issue_ID = tblTransactions.Issue_ID) ON tblItem_Info.Item_ID = tblItem_List.Item_ID) ON tblReceive.Receive_ID = tblTransactions.Receive_ID
GROUP BY tblItem_List.Item_ID, tblItem_Info.Description, tblItem_List.Production_Date, tblItem_Info.Shelf_Life, DateValue([tblItem_List.Production_Date]+[tblItem_Info.Shelf_Life]);
また、On_Hand/在庫を求める式のところですが、この書き方でいいのか結果が返ってこないので分かりませんでした。
On_Hand:Nz([tblItem_List.Inventory_Qty],0)+Nz([tblTransactions.Receive_Qty],0)-Nz([tblTransactions.Issue_Qty],0))
集計:合計
どうぞ宜しくお願いします。
お礼
どうもありがとうございました。 解決しました。