Требуется помощь Sub Query - PullRequest
1 голос
/ 22 января 2009

Мне нужно получить 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')

Ответы [ 2 ]

1 голос
/ 22 января 2009
SELECT  Count(TBL_PROPERTY.PROPREF) AS TotalOrders
      , SUM( CASE WHEN TBL_REPAIR_ORDER.STATUS <> 'Completed' THEN 1 ELSE 0 END ) AS TotalNotCompleted

Удалите TBL_REPAIR_ORDER.STATUS <> 'Завершено' из предложения WHERE.

0 голосов
/ 22 января 2009

Используйте два ваших запроса в качестве таблиц / столбцов в основном запросе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...