需要子查询帮助
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】:将您拥有的两个查询用作主查询中的表/列。
【讨论】:
以上是关于需要子查询帮助的主要内容,如果未能解决你的问题,请参考以下文章