按日期访问SQL筛选器查询两个值

cfleming93

我有一个表达式可以显示所有订单进出之前的总库存:

(Query3只是将库存清单与接收和发送的订单结合在一起,并且效果很好)

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;

但是我一直在尝试按用户输入的日期对其进行过滤。我的代码不正确,我不确定为什么

SELECT Query3.Products.ID, Query3.ProductName, Query3.StandardCost, Query3.OnHand, 
  (SELECT NZ(Sum([OrderJoin.Quantity]),0)
  FROM Query3
  WHERE (((Query3.ShippedDate)>[Enter End Date] Or (Query3.ShippedDate) Is Null))
  GROUP BY Query3.Products.ID, Query3.ProductName, Query3.StandardCost, Query3.OnHand;
    ) AS Outgoing, 
  (SELECT NZ(Sum([Query1.Quantity]),0)
  FROM Query3
  WHERE (((Query3.DateReceived)>[Enter End Date] Or (Query3.DateReceived) Is Null))
  GROUP BY Query3.Products.ID, Query3.ProductName, Query3.StandardCost, Query3.OnHand;
    ) AS Incoming,
[OnHand]+[Outgoing]-[Incoming] AS OnHandAfter, [StandardCost]*[OnHandAfter] AS TotalCost
FROM Query3
GROUP BY Query3.Products.ID, Query3.ProductName, Query3.StandardCost, Query3.OnHand;

Access出现错误:"At most one record can be returned by this subquery"有人知道我在做什么错吗?

更新:

我发现在SELECT中嵌套SELECT只会尝试使用一个值,但是我想返回多个值。因此,我对代码进行了一些编辑,结果出现语法错误,我不确定为什么:

SELECT Q1.Products.ID, Q1.ProductName, Q1.StandardCost, Q1.OnHand, 
  [Q1.OnHand]+[Q2.Outgoing]-[Q3.Incoming] AS OnHandAfter,
  [StandardCost]*[OnHandAfter] AS TotalCost
FROM (Query3 Q1
LEFT JOIN
  (SELECT Q2.Query3.Products.ID, Q2.Query3.ProductName, Q2.Query3.StandardCost,
    Q2.Query3.OnHand, NZ(Sum([OrderJoin.Quantity]),0) AS Outgoing
  FROM Query3 Q2
  WHERE (((Query3.ShippedDate)>[Enter End Date] Or (Query3.ShippedDate) Is Null))
  GROUP BY Q2.Query3.Products.ID, Q2.Query3.ProductName, Q2,Query3.StandardCost,
    Q2.Query3.OnHand) ON Q1.Query3.Products.ID = Q2.Query3.Products.ID) 
LEFT JOIN
  (SELECT Q3.Query3.Products.ID, Q3.Query3.ProductName, Q3.Query3.StandardCost,
    Q3.Query3.OnHand, NZ(Sum([Query1.Quantity]),0) AS Incoming
  FROM Query3 Q3
  WHERE (((Query3.DateReceived)>[Enter End Date] Or (Query3.DateReceived) Is Null))
  GROUP BY Q3,Query3.Products.ID, Q3.Query3.ProductName, Q3.Query3.StandardCost,
    Q3.Query3.OnHand) ON Q1.Query3.Products.ID = Q3.Query3.Products.ID
GROUP BY Q1.Query3.Products.ID, Q1.Query3.ProductName, Q1.Query3.StandardCost, Q1.Query3.OnHand;
莫非斯

这是一个类似问题答案使用该MAX函数,以便子查询将仅返回单行:

SELECT query3.products.id,
       query3.productname,
       query3.standardcost,
       query3.onhand,
       (
                SELECT   MAX(Nz(SUM([OrderJoin.Quantity]),0))
                FROM     query3
                WHERE    query3.shippeddate>[Enter End Date]
                OR       query3.shippeddate IS NULL
                GROUP BY query3.products.id,
                         query3.productname,
                         query3.standardcost,
                         query3.onhand;) AS outgoing,
       (
                SELECT   MAX(Nz(SUM([Query1.Quantity]),0))
                FROM     query3
                WHERE    query3.datereceived>[Enter End Date]
                OR       query3.datereceived IS NULL
                GROUP BY query3.products.id,
                         query3.productname,
                         query3.standardcost,
                         query3.onhand;) AS incoming,     
        [OnHand]+[Outgoing]-[Incoming] AS onhandafter,    
        [StandardCost]*[OnHandAfter] AS totalcost 
FROM query3 
GROUP BY query3.products.id, query3.productname, query3.standardcost, query3.onhand;

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

SQL查询按日期范围查找介于两个日期之间的所有数据

来自分类Dev

按两个日期排序查询结果

来自分类Dev

在一个SQL查询中合并两个表,并使日期值唯一

来自分类Dev

来自子查询的两个日期之间的SQL查询

来自分类Dev

在Django中,筛选一天内两个日期时间的查询集

来自分类Dev

两个表之间的SQL SELECT按日期联接

来自分类Dev

SQL:如何按日期范围连接两个表

来自分类Dev

比较SQL查询中的两个日期

来自分类Dev

SQL查询-范围两个日期-包括null

来自分类Dev

比较两个查询PL / SQL中的日期

来自分类Dev

SQL查询以检索两个日期之间的字段列表

来自分类Dev

我需要SQL查询以按名称查找两个日期和另一列之间

来自分类Dev

筛选两个日期差异之间的BindingSource

来自分类Dev

如何比较两个SQL查询值

来自分类Dev

合并两个查询以获取SQL中的合并值

来自分类Dev

SQL查询每条记录的两个值

来自分类Dev

如何从MongoDB中按日期按聚合组从数组中获取最后两个值?

来自分类Dev

如何从MongoDB中按日期按聚合组从数组中获取最后两个值?

来自分类Dev

两个日期之间的SQALCHEMY查询

来自分类Dev

两个日期之间的SQL Server总和数据按日期分组

来自分类Dev

数据库查询选择两个表,按日期和限制排序

来自分类Dev

按两个不同表中两个日期时间字段的最大值排序

来自分类Dev

AngularJS筛选器限制包括两个参数

来自分类Dev

Android筛选器应用返回两个Twitter

来自分类Dev

Pyspark:如何筛选两个列值对的列表?

来自分类Dev

SQL查询以获取两个日期之间月份的日期范围列表

来自分类Dev

如果两个日期不大于指定日期,则显示 SQL 查询

来自分类Dev

仅工作日在两个日期和两次之间进行SQL查询

来自分类Dev

按两个不同的值排序

Related 相关文章

  1. 1

    SQL查询按日期范围查找介于两个日期之间的所有数据

  2. 2

    按两个日期排序查询结果

  3. 3

    在一个SQL查询中合并两个表,并使日期值唯一

  4. 4

    来自子查询的两个日期之间的SQL查询

  5. 5

    在Django中,筛选一天内两个日期时间的查询集

  6. 6

    两个表之间的SQL SELECT按日期联接

  7. 7

    SQL:如何按日期范围连接两个表

  8. 8

    比较SQL查询中的两个日期

  9. 9

    SQL查询-范围两个日期-包括null

  10. 10

    比较两个查询PL / SQL中的日期

  11. 11

    SQL查询以检索两个日期之间的字段列表

  12. 12

    我需要SQL查询以按名称查找两个日期和另一列之间

  13. 13

    筛选两个日期差异之间的BindingSource

  14. 14

    如何比较两个SQL查询值

  15. 15

    合并两个查询以获取SQL中的合并值

  16. 16

    SQL查询每条记录的两个值

  17. 17

    如何从MongoDB中按日期按聚合组从数组中获取最后两个值?

  18. 18

    如何从MongoDB中按日期按聚合组从数组中获取最后两个值?

  19. 19

    两个日期之间的SQALCHEMY查询

  20. 20

    两个日期之间的SQL Server总和数据按日期分组

  21. 21

    数据库查询选择两个表,按日期和限制排序

  22. 22

    按两个不同表中两个日期时间字段的最大值排序

  23. 23

    AngularJS筛选器限制包括两个参数

  24. 24

    Android筛选器应用返回两个Twitter

  25. 25

    Pyspark:如何筛选两个列值对的列表?

  26. 26

    SQL查询以获取两个日期之间月份的日期范围列表

  27. 27

    如果两个日期不大于指定日期,则显示 SQL 查询

  28. 28

    仅工作日在两个日期和两次之间进行SQL查询

  29. 29

    按两个不同的值排序

热门标签

归档