Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 объединение 3х запросов  [new]
zTOR1Sz
Member

Откуда:
Сообщений: 11
есть 3 запроса
select sp2.NAIM
from sp2
inner join kdk1 on kdk1.kk02=sp2.kod_n
where sp2.SPR='k02'
group by sp2.naim

выдаёт 12 строк

select count(KDK1.n_kdk) from KDK1 inner join sp2 on sp2.KOD_N=kdk1.KK02
inner join KDK on kdk.N_KDK=KDK1.N_KDK
where sp2.SPR='k02' and kdk.kpol=1
group by sp2.NAIM
выдаёт 11 сторк


select count(KDK1.n_kdk) from KDK1 inner join sp2 on sp2.KOD_N=kdk1.KK02
inner join KDK on kdk.N_KDK=KDK1.N_KDK
where sp2.SPR='k02' and kdk.kpol=2
group by sp2.NAIM
выдаёт 10 строк

Необходимо объеденить. Есть мысль, что это необходимо выполнить с PIVOT , но не могу понять как. Помогите. Заранее спасибо
11 фев 14, 15:15    [15551706]     Ответить | Цитировать Сообщить модератору
 Re: объединение 3х запросов  [new]
Glory
Member

Откуда:
Сообщений: 104760
zTOR1Sz
Необходимо объеденить.

И какой результат понимать под этим "объединить"
11 фев 14, 15:17    [15551723]     Ответить | Цитировать Сообщить модератору
 Re: объединение 3х запросов  [new]
zTOR1Sz
Member

Откуда:
Сообщений: 11
1 столбец - строки из первого запроса
2 столбец - строки из 2го запроса, где sp2.KOD_N=kdk1.KK02 при kdk.kpol=1
3 столбец - строки из 3го запроса, где sp2.KOD_N=kdk1.KK02 при kdk.kpol=2
11 фев 14, 15:19    [15551743]     Ответить | Цитировать Сообщить модератору
 Re: объединение 3х запросов  [new]
Добрый Э - Эх
Guest
zTOR1Sz,

почитай про CASE. Должно помочь...
11 фев 14, 15:20    [15551750]     Ответить | Цитировать Сообщить модератору
 Re: объединение 3х запросов  [new]
zTOR1Sz
Member

Откуда:
Сообщений: 11
Картинка с другого сайта. вот так должен выглядеть результат
11 фев 14, 17:22    [15552715]     Ответить | Цитировать Сообщить модератору
 Re: объединение 3х запросов  [new]
LexusR
Member

Откуда: Novosibirsk
Сообщений: 1873
select sp2.NAIM
,COUNT(case when kdk.kpol=1 then KDK1.n_kdk else null end) as [запрос 1]
,COUNT(case when kdk.kpol=2 then KDK1.n_kdk else null end) as [запрос 2]
from sp2 
left outer join KDK1 on sp2.KOD_N=kdk1.KK02 
left outer join KDK  on kdk.N_KDK=KDK1.N_KDK
where sp2.SPR='k02'
group by sp2.NAIM
12 фев 14, 07:23    [15554713]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить