Подзапросы - использование только одного оператора Where - PullRequest
0 голосов
/ 29 октября 2010

У меня есть запрос ниже, каждый раз, когда я меняю его, мне нужно изменить stockclientid. Мне бы хотелось, чтобы у меня был только один оператор where для всех подзапросов.

Есть ли способ применить один и тот же код для возврата нескольких строк? Я хотел бы, чтобы результаты отображались для всех stockclientID, а не только для 1.

Select 

(Select distinct SName FROM classifiedadmin.readOnly_CoreData) as SupplierName,

(SELECT COUNT(*) FROM classifiedadmin.readOnly_CoreData where Successful= 1 and StockClientID=3) as TotalLive,

(Select count(*) FROM classifiedadmin.readOnly_CoreData where length(DetailDesc) > 200 and StockClientID= 3) as DescriptionOver200,

(select count(*) from classifiedadmin.readOnly_CoreData where busruleViolated=1 and StockClientID = 3) as BusinessRuleViolated,

(Select count(*) FROM classifiedadmin.readOnly_CoreData where StockClientID = 3
and Successful=0
and busruleviolated=0
and Edition not like '%auto%'
and Edition not like '%shift%'
and Edition not like '%tronic%'
and Edition not like '%van%'
and Edition not like '%DSG%') as UnadvertisedManual;

1 Ответ

0 голосов
/ 29 октября 2010
SELECT  MIN(sname),
        SUM(Successful= 1),
        SUM(length(DetailDesc) > 200),
        SUM(busruleViolated=1),
        SUM(
        Successful=0
        and busruleviolated=0
        and Edition not like '%auto%'
        and Edition not like '%shift%'
        and Edition not like '%tronic%'
        and Edition not like '%van%'
        and Edition not like '%DSG%'
        )
FROM    classifiedadmin.readOnly_CoreData
WHERE   StockClientID = 3

Обратите внимание, что ваш текущий запрос с SELECT DISINCT sname не будет выполнен, если в заданном stockclientid.

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