Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.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
Access SQL计算特定日期的库存,两次订购时库存结果加倍_Sql_Ms Access - Fatal编程技术网

Access SQL计算特定日期的库存,两次订购时库存结果加倍

Access SQL计算特定日期的库存,两次订购时库存结果加倍,sql,ms-access,Sql,Ms Access,我有一个SQL查询,显示任何订单输入或输出前的库存状态: SELECT Query3.Products.ID, Query3.ProductName, Query3.StandardCost, Query3.OnHand, Nz(Sum([OrderJoin.Quantity]),0) AS Outgoing, Nz(Sum([Query1.Quantity]),0) AS Incoming, [OnHand]+[Outgoing]-[Incoming] AS OnHandAfter,

我有一个SQL查询,显示任何订单输入或输出前的库存状态:

SELECT Query3.Products.ID, Query3.ProductName, Query3.StandardCost, Query3.OnHand,
  Nz(Sum([OrderJoin.Quantity]),0) AS Outgoing, Nz(Sum([Query1.Quantity]),0) AS Incoming,
  [OnHand]+[Outgoing]-[Incoming] AS OnHandAfter, [StandardCost]*[OnHandAfter] AS TotalCost
FROM Query3
GROUP BY Query3.Products.ID, Query3.ProductName, Query3.StandardCost, Query3.OnHand;
| ID | Product Name | Standard Cost | On Hand | Outgoing | Incoming | OnHandAfter | TotalCost |
| 14 | Crab Meat    | £13.80        | 185     | 23       | 0        | 208         | £2,870.40
| ID | Product Name | Standard Cost | On Hand | Outgoing | Incoming | OnHandAfter | TotalCost
| 14 | Crab Meat    | £13.80        | 185     | 46       | 0        | 370         | £5,106.00
| ID | Product Name | Standard Cost | On Hand | Outgoing | Incoming | OnHandAfter | TotalCost |
| 16 | Coffee       | £34.50        | 150     | 30       | 152      | 28          | £966.00
| ID | Product Name | Standard Cost | On Hand | Outgoing | Incoming | OnHandAfter | TotalCost
| 16 | Coffee       | £34.50        | 150     | 60       | 304      | 46          | £1,587.00
然后,我尝试对其进行过滤,使其接受用户输入的日期,以便将库存状态追溯到:

SELECT Q1.Products.ID, 
 Q1.ProductName, 
 Q1.StandardCost, 
 Q1.OnHand, 
 SUM([Q1.OnHand] + [Q2_sub.Outgoing] - [Q3_sub.Incoming]) AS OnHandAfter, 
 ([Q1.StandardCost] * [OnHandAfter]) AS TotalCost
FROM (
 Query3 AS Q1 
      LEFT JOIN (
           SELECT Q2.Products.ID, 
                Q2.ProductName, 
                Q2.StandardCost, 
                Q2.OnHand, 
                NZ(Sum([OrderJoin.Quantity]), 0) AS Outgoing 
           FROM Query3 AS Q2 
           WHERE (
                     (
                         (ShippedDate) > [Enter End Date]
                         OR (ShippedDate) IS NULL
                         )
                     )
           GROUP BY Q2.Products.ID, 
                Q2.ProductName, 
                Q2.StandardCost, 
                Q2.OnHand)  AS Q2_Sub ON Q1.Products.ID = Q2_Sub.ID) 
      LEFT JOIN (
                SELECT Q3.Products.ID, 
                     Q3.ProductName, 
                     Q3.StandardCost, 
                     Q3.OnHand, 
                     NZ(Sum([Query1.Quantity]), 0) AS Incoming
                FROM Query3 AS Q3 
                WHERE (
                     (
                         (DateReceived) > [Enter End Date]
                         OR (DateReceived) IS NULL
                      )
                 ) 
                GROUP BY Q3.Products.ID, 
                     Q3.ProductName, 
                     Q3.StandardCost, 
                     Q3.OnHand)  AS Q3_Sub ON Q1.Products.ID = Q3_Sub.ID
GROUP BY Q1.Products.ID, Q1.ProductName, Q1.StandardCost, Q1.OnHand;
| ID | Product Name | Standard Cost | On Hand | Outgoing | Incoming | OnHandAfter | TotalCost |
| 14 | Crab Meat    | £13.80        | 185     | 23       | 0        | 208         | £2,870.40
| ID | Product Name | Standard Cost | On Hand | Outgoing | Incoming | OnHandAfter | TotalCost
| 14 | Crab Meat    | £13.80        | 185     | 46       | 0        | 370         | £5,106.00
| ID | Product Name | Standard Cost | On Hand | Outgoing | Incoming | OnHandAfter | TotalCost |
| 16 | Coffee       | £34.50        | 150     | 30       | 152      | 28          | £966.00
| ID | Product Name | Standard Cost | On Hand | Outgoing | Incoming | OnHandAfter | TotalCost
| 16 | Coffee       | £34.50        | 150     | 60       | 304      | 46          | £1,587.00
结果基本正确,但也有一些完全错误,

| ID | Product Name | Standard Cost | On Hand | Outgoing | Incoming | OnHandAfter | TotalCost |
| 14 | Crab Meat    | £13.80        | 185     | 23       | 0        | 208         | £2,870.40
| ID | Product Name | Standard Cost | On Hand | Outgoing | Incoming | OnHandAfter | TotalCost
| 14 | Crab Meat    | £13.80        | 185     | 46       | 0        | 370         | £5,106.00
| ID | Product Name | Standard Cost | On Hand | Outgoing | Incoming | OnHandAfter | TotalCost |
| 16 | Coffee       | £34.50        | 150     | 30       | 152      | 28          | £966.00
| ID | Product Name | Standard Cost | On Hand | Outgoing | Incoming | OnHandAfter | TotalCost
| 16 | Coffee       | £34.50        | 150     | 60       | 304      | 46          | £1,587.00
编辑:

| ID | Product Name | Standard Cost | On Hand | Outgoing | Incoming | OnHandAfter | TotalCost |
| 14 | Crab Meat    | £13.80        | 185     | 23       | 0        | 208         | £2,870.40
| ID | Product Name | Standard Cost | On Hand | Outgoing | Incoming | OnHandAfter | TotalCost
| 14 | Crab Meat    | £13.80        | 185     | 46       | 0        | 370         | £5,106.00
| ID | Product Name | Standard Cost | On Hand | Outgoing | Incoming | OnHandAfter | TotalCost |
| 16 | Coffee       | £34.50        | 150     | 30       | 152      | 28          | £966.00
| ID | Product Name | Standard Cost | On Hand | Outgoing | Incoming | OnHandAfter | TotalCost
| 16 | Coffee       | £34.50        | 150     | 60       | 304      | 46          | £1,587.00
查看后,似乎有一些人在传出/传入列中加倍

| ID | Product Name | Standard Cost | On Hand | Outgoing | Incoming | OnHandAfter | TotalCost |
| 14 | Crab Meat    | £13.80        | 185     | 23       | 0        | 208         | £2,870.40
| ID | Product Name | Standard Cost | On Hand | Outgoing | Incoming | OnHandAfter | TotalCost
| 14 | Crab Meat    | £13.80        | 185     | 46       | 0        | 370         | £5,106.00
| ID | Product Name | Standard Cost | On Hand | Outgoing | Incoming | OnHandAfter | TotalCost |
| 16 | Coffee       | £34.50        | 150     | 30       | 152      | 28          | £966.00
| ID | Product Name | Standard Cost | On Hand | Outgoing | Incoming | OnHandAfter | TotalCost
| 16 | Coffee       | £34.50        | 150     | 60       | 304      | 46          | £1,587.00
编辑:

| ID | Product Name | Standard Cost | On Hand | Outgoing | Incoming | OnHandAfter | TotalCost |
| 14 | Crab Meat    | £13.80        | 185     | 23       | 0        | 208         | £2,870.40
| ID | Product Name | Standard Cost | On Hand | Outgoing | Incoming | OnHandAfter | TotalCost
| 14 | Crab Meat    | £13.80        | 185     | 46       | 0        | 370         | £5,106.00
| ID | Product Name | Standard Cost | On Hand | Outgoing | Incoming | OnHandAfter | TotalCost |
| 16 | Coffee       | £34.50        | 150     | 30       | 152      | 28          | £966.00
| ID | Product Name | Standard Cost | On Hand | Outgoing | Incoming | OnHandAfter | TotalCost
| 16 | Coffee       | £34.50        | 150     | 60       | 304      | 46          | £1,587.00
这两款产品的共同点是,它们都已订购过两次。(也就是说,咖啡订了25人一杯,5人一杯,但结果是60人一杯。)如何解决这两种咖啡都数两次的问题?

| ID | Product Name | Standard Cost | On Hand | Outgoing | Incoming | OnHandAfter | TotalCost |
| 14 | Crab Meat    | £13.80        | 185     | 23       | 0        | 208         | £2,870.40
| ID | Product Name | Standard Cost | On Hand | Outgoing | Incoming | OnHandAfter | TotalCost
| 14 | Crab Meat    | £13.80        | 185     | 46       | 0        | 370         | £5,106.00
| ID | Product Name | Standard Cost | On Hand | Outgoing | Incoming | OnHandAfter | TotalCost |
| 16 | Coffee       | £34.50        | 150     | 30       | 152      | 28          | £966.00
| ID | Product Name | Standard Cost | On Hand | Outgoing | Incoming | OnHandAfter | TotalCost
| 16 | Coffee       | £34.50        | 150     | 60       | 304      | 46          | £1,587.00
还有一对夫妇,比如蟹肉,现在似乎是在累积计算,也就是说,当我第一次运行它时,它的数量是370,现在它在再次添加46后,数量是416

| ID | Product Name | Standard Cost | On Hand | Outgoing | Incoming | OnHandAfter | TotalCost |
| 14 | Crab Meat    | £13.80        | 185     | 23       | 0        | 208         | £2,870.40
| ID | Product Name | Standard Cost | On Hand | Outgoing | Incoming | OnHandAfter | TotalCost
| 14 | Crab Meat    | £13.80        | 185     | 46       | 0        | 370         | £5,106.00
| ID | Product Name | Standard Cost | On Hand | Outgoing | Incoming | OnHandAfter | TotalCost |
| 16 | Coffee       | £34.50        | 150     | 30       | 152      | 28          | £966.00
| ID | Product Name | Standard Cost | On Hand | Outgoing | Incoming | OnHandAfter | TotalCost
| 16 | Coffee       | £34.50        | 150     | 60       | 304      | 46          | £1,587.00
应该是什么

| ID | Product Name | Standard Cost | On Hand | Outgoing | Incoming | OnHandAfter | TotalCost |
| 14 | Crab Meat    | £13.80        | 185     | 23       | 0        | 208         | £2,870.40
| ID | Product Name | Standard Cost | On Hand | Outgoing | Incoming | OnHandAfter | TotalCost
| 14 | Crab Meat    | £13.80        | 185     | 46       | 0        | 370         | £5,106.00
| ID | Product Name | Standard Cost | On Hand | Outgoing | Incoming | OnHandAfter | TotalCost |
| 16 | Coffee       | £34.50        | 150     | 30       | 152      | 28          | £966.00
| ID | Product Name | Standard Cost | On Hand | Outgoing | Incoming | OnHandAfter | TotalCost
| 16 | Coffee       | £34.50        | 150     | 60       | 304      | 46          | £1,587.00
到底是什么

| ID | Product Name | Standard Cost | On Hand | Outgoing | Incoming | OnHandAfter | TotalCost |
| 14 | Crab Meat    | £13.80        | 185     | 23       | 0        | 208         | £2,870.40
| ID | Product Name | Standard Cost | On Hand | Outgoing | Incoming | OnHandAfter | TotalCost
| 14 | Crab Meat    | £13.80        | 185     | 46       | 0        | 370         | £5,106.00
| ID | Product Name | Standard Cost | On Hand | Outgoing | Incoming | OnHandAfter | TotalCost |
| 16 | Coffee       | £34.50        | 150     | 30       | 152      | 28          | £966.00
| ID | Product Name | Standard Cost | On Hand | Outgoing | Incoming | OnHandAfter | TotalCost
| 16 | Coffee       | £34.50        | 150     | 60       | 304      | 46          | £1,587.00

应该是什么

| ID | Product Name | Standard Cost | On Hand | Outgoing | Incoming | OnHandAfter | TotalCost |
| 14 | Crab Meat    | £13.80        | 185     | 23       | 0        | 208         | £2,870.40
| ID | Product Name | Standard Cost | On Hand | Outgoing | Incoming | OnHandAfter | TotalCost
| 14 | Crab Meat    | £13.80        | 185     | 46       | 0        | 370         | £5,106.00
| ID | Product Name | Standard Cost | On Hand | Outgoing | Incoming | OnHandAfter | TotalCost |
| 16 | Coffee       | £34.50        | 150     | 30       | 152      | 28          | £966.00
| ID | Product Name | Standard Cost | On Hand | Outgoing | Incoming | OnHandAfter | TotalCost
| 16 | Coffee       | £34.50        | 150     | 60       | 304      | 46          | £1,587.00
到底是什么

| ID | Product Name | Standard Cost | On Hand | Outgoing | Incoming | OnHandAfter | TotalCost |
| 14 | Crab Meat    | £13.80        | 185     | 23       | 0        | 208         | £2,870.40
| ID | Product Name | Standard Cost | On Hand | Outgoing | Incoming | OnHandAfter | TotalCost
| 14 | Crab Meat    | £13.80        | 185     | 46       | 0        | 370         | £5,106.00
| ID | Product Name | Standard Cost | On Hand | Outgoing | Incoming | OnHandAfter | TotalCost |
| 16 | Coffee       | £34.50        | 150     | 30       | 152      | 28          | £966.00
| ID | Product Name | Standard Cost | On Hand | Outgoing | Incoming | OnHandAfter | TotalCost
| 16 | Coffee       | £34.50        | 150     | 60       | 304      | 46          | £1,587.00

使用Pound时,您可能来自英国,因此日期格式为dd/mm/yyyy

| ID | Product Name | Standard Cost | On Hand | Outgoing | Incoming | OnHandAfter | TotalCost |
| 14 | Crab Meat    | £13.80        | 185     | 23       | 0        | 208         | £2,870.40
| ID | Product Name | Standard Cost | On Hand | Outgoing | Incoming | OnHandAfter | TotalCost
| 14 | Crab Meat    | £13.80        | 185     | 46       | 0        | 370         | £5,106.00
| ID | Product Name | Standard Cost | On Hand | Outgoing | Incoming | OnHandAfter | TotalCost |
| 16 | Coffee       | £34.50        | 150     | 30       | 152      | 28          | £966.00
| ID | Product Name | Standard Cost | On Hand | Outgoing | Incoming | OnHandAfter | TotalCost
| 16 | Coffee       | £34.50        | 150     | 60       | 304      | 46          | £1,587.00
因此,在查询中,您可能必须将
[输入结束日期]
指定为数据类型日期的参数,并且由于日期字段可以为空,请注意这一点,如替换以下内容:

| ID | Product Name | Standard Cost | On Hand | Outgoing | Incoming | OnHandAfter | TotalCost |
| 14 | Crab Meat    | £13.80        | 185     | 23       | 0        | 208         | £2,870.40
| ID | Product Name | Standard Cost | On Hand | Outgoing | Incoming | OnHandAfter | TotalCost
| 14 | Crab Meat    | £13.80        | 185     | 46       | 0        | 370         | £5,106.00
| ID | Product Name | Standard Cost | On Hand | Outgoing | Incoming | OnHandAfter | TotalCost |
| 16 | Coffee       | £34.50        | 150     | 30       | 152      | 28          | £966.00
| ID | Product Name | Standard Cost | On Hand | Outgoing | Incoming | OnHandAfter | TotalCost
| 16 | Coffee       | £34.50        | 150     | 60       | 304      | 46          | £1,587.00
(ShippedDate) > [Enter End Date]
OR (ShippedDate) IS NULL
与:

| ID | Product Name | Standard Cost | On Hand | Outgoing | Incoming | OnHandAfter | TotalCost |
| 14 | Crab Meat    | £13.80        | 185     | 23       | 0        | 208         | £2,870.40
| ID | Product Name | Standard Cost | On Hand | Outgoing | Incoming | OnHandAfter | TotalCost
| 14 | Crab Meat    | £13.80        | 185     | 46       | 0        | 370         | £5,106.00
| ID | Product Name | Standard Cost | On Hand | Outgoing | Incoming | OnHandAfter | TotalCost |
| 16 | Coffee       | £34.50        | 150     | 30       | 152      | 28          | £966.00
| ID | Product Name | Standard Cost | On Hand | Outgoing | Incoming | OnHandAfter | TotalCost
| 16 | Coffee       | £34.50        | 150     | 60       | 304      | 46          | £1,587.00

如果您尝试使用
选择distinct
,会发生什么情况?@LiamH没有变化,结果显示在一行中,只是当它在多个时间点上订购时,值会加倍。谢谢您,在Access中,我的日期看起来会自动为DD/MM/YYYY,但我甚至没有想到这一点