需要子查询帮助

Posted

技术标签:

【中文标题】需要子查询帮助【英文标题】:Sub Query help required 【发布时间】:2009-01-22 15:58:58 【问题描述】:

我需要得到 2 个总和的数字,但是我遇到了问题,因为一个是针对总订单的,一个是针对不完整的订单的。这些使用相同的初始查询,但是未完成的订单有一个附加的 where 子句。可以将这些放入查询中,以便我只获得 2 列。我以前做过内部查询,但我从来没有做过两个不同的 where 子句的查询?!任何想法都非常感谢

用于查询总订单的即时消息是:

SELECT  Count(TBL_PROPERTY.PROPREF) AS TotalOrders

FROM    TBL_PROPERTY INNER JOIN 
        TBL_REPAIR_ORDER ON TBL_PROPERTY.PROPREF = TBL_REPAIR_ORDER.PROPREF INNER JOIN 
        TBL_REPAIR_VISIT ON TBL_REPAIR_ORDER.ORDERID = TBL_REPAIR_VISIT.ORDERID INNER JOIN
        tbl_contract ON tbl_repair_order.CONTRACT = tbl_contract.CONTRACT

WHERE   (TBL_CONTRACT.CONTRACT IN ('STE')) AND
        (TBL_REPAIR_ORDER.RAISEDDATE  BETWEEN '01/12/2008' AND DATEADD(hh,23,'01/01/2009'))

使用未完成的订单查询即时消息:

SELECT  Count(TBL_PROPERTY.PROPREF) AS TotalOrders

FROM    TBL_PROPERTY INNER JOIN 
        TBL_REPAIR_ORDER ON TBL_PROPERTY.PROPREF = TBL_REPAIR_ORDER.PROPREF INNER JOIN 
        TBL_REPAIR_VISIT ON TBL_REPAIR_ORDER.ORDERID = TBL_REPAIR_VISIT.ORDERID INNER JOIN
        tbl_contract ON tbl_repair_order.CONTRACT = tbl_contract.CONTRACT

WHERE   (TBL_CONTRACT.CONTRACT IN ('STE')) AND
        (TBL_REPAIR_ORDER.RAISEDDATE  BETWEEN '01/12/2008' AND DATEADD(hh,23,'01/01/2009')) AND
 TBL_REPAIR_ORDER.STATUS <> 'Completed')

【问题讨论】:

使用工具栏中的代码按钮来帮助格式化代码,以提高可读性。 【参考方案1】:
SELECT  Count(TBL_PROPERTY.PROPREF) AS TotalOrders
      , SUM( CASE WHEN TBL_REPAIR_ORDER.STATUS <> 'Completed' THEN 1 ELSE 0 END ) AS TotalNotCompleted

也从 WHERE 子句中删除 TBL_REPAIR_ORDER.STATUS 'Completed'。

【讨论】:

ok igure 最后的评论我把count in not sum haha​​ 现在工作正常了ta :)【参考方案2】:

将您拥有的两个查询用作主查询中的表/列。

【讨论】:

以上是关于需要子查询帮助的主要内容,如果未能解决你的问题,请参考以下文章

在 UNION 查询中执行 DISTRIBUTE BY 时是不是需要子查询?

Django 查询集过滤器(可能需要子查询)

需要子查询条件输出

以不同方式统计客户 - 我需要子查询吗?

需要单个输出行上多行的数据。子查询?

触发器中存在条件