Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
简单库存SQL查询未列出所有产品MS-ACCESS_Sql_Database_Ms Access_Inventory_Stock - Fatal编程技术网

简单库存SQL查询未列出所有产品MS-ACCESS

简单库存SQL查询未列出所有产品MS-ACCESS,sql,database,ms-access,inventory,stock,Sql,Database,Ms Access,Inventory,Stock,我有一个简单的选择查询: 它没有列出所有的产品。它只列出有入口和出口的产品。这没有用,因为我想知道所有产品的库存水平 这是我从查询中得到的结果: | product_ID | Stock | | 1 | 4 | 这是我不想得到的 | product_ID | Stock | | 1 | 4 | | 2 | 10 | | 3 | 0 | 这应该不会太复杂,但我对access和SQL是新手,这

我有一个简单的选择查询:

它没有列出所有的产品。它只列出有入口和出口的产品。这没有用,因为我想知道所有产品的库存水平

这是我从查询中得到的结果:

| product_ID | Stock |
| 1          | 4     |
这是我不想得到的

| product_ID | Stock |
| 1          | 4     |
| 2          | 10    |
| 3          | 0     |
这应该不会太复杂,但我对access和SQL是新手,这让我头疼。任何帮助都将不胜感激

记录如下:

产品

| product_ID | product_Name |
| 1          | Pencil       |
| 2          | Book         |
| 3          | Marker       |
入口

| intake_ID | intake_Date | product_ID  | intake_QTY |
| 1         | 20/07/2017  | 1           | 10         |
| 2         | 20/07/2017  | 2           | 10         |
出口


您正在寻找
左联接
nz()


非常感谢您的回复!不幸的是,我不知道“外部连接”。现在至少我知道他们存在。谢谢如果每一次摄入都会有一个与之相关的提供者,那该怎么办?假设我为入口添加了一个名为provider_ID的列,并为出口添加了一个名为provider_ID的列。我如何列出区分提供者的库存?因此,我可以将来自不同供应商的同一产品ID视为不同的产品?我尝试使用此查询,但它给出了一个模糊错误
选择tblProducts.product\u ID,tblProviders.provider,Nz(Sum(tblIntakes.intraction\u QTY),0)-Nz(Sum(tblExits.exit\u QTY))作为库存
((tblProducts LEFT JOIN tblExits ON tblProducts.product\u ID=tblExits.product\u ID)LEFT JOIN tblIntakes ON tblProducts.product\u ID=tblIntakes.product\u ID)LEFT JOIN tblProviders ON(tblExits.provider\u ID=tblProviders.provider\u ID)和(tblIntakes.provider\u ID=tblProviders.provider\u ID)上的TBL提供程序
按tblProducts.product\u ID,tblProviders.provider分组;
@SantiagoBarclay…新问题应作为问题而不是评论提出。
| intake_ID | intake_Date | product_ID  | intake_QTY |
| 1         | 20/07/2017  | 1           | 10         |
| 2         | 20/07/2017  | 2           | 10         |
| exit_ID | exit_Date  | product_ID | exit_QTY |
| 1       | 21/07/2017 | 1          | 6        |
SELECT tblProducts.product_ID,
       nz(Sum(tblIntakes.intake_QTY), 0) - nz(Sum(tblExits.exit_QTY)) AS Stock
FROM (tblProducts LEFT JOIN
      tblExits
      ON tblProducts.product_ID = tblExits.product_ID
     ) LEFT JOIN
      tblIntakes
      ON tblProducts.product_ID = tblIntakes.product_ID
GROUP BY tblProducts.product_ID;