Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > SQL, базы данных
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.10.2011, 21:04   #1
Pellegrino
Новичок
Джуниор
 
Регистрация: 13.10.2011
Сообщений: 1
По умолчанию Подстановка переменной в запрос

Уважаемые, подскажите, как реализовать следующую задачку, по хранимой процедуре.
Есть запрос, в который нужно подставлять значения из другого запроса, как подставить? Необходимо брать данные из столбца Norm_1_2 первого запроса
Код:
select kol_1_2.Norm_1_2, kol_1_2.kol_vag, kol_3_4.sr_sutki, kol_3_4.sutki, temp2.kol_vag_low_pol_sroka, 
 temp3.kol_vag_pol_sroka, temp4.kol_vag_fast_time

from 

--Выборка первых двух колонок для справки
(select Probeg_Norm Norm_1_2, (count (*)) kol_vag
--       sum(case when DLINA<16000 then 1 else 0 end) as 'F40',
from nvVagPrivat
left join VagPrivatRem on nvVagPrivat.Nom_Vag=VagPrivatRem.Nom_Vag
where VagPrivatRem.Probeg_Norm>0
group by Probeg_Norm
) kol_1_2

left outer join

--Выборка колонок 3 и 4 для справки
(select Probeg_Norm Norm_3_4, (count(*)) sutki, (sum(Probeg_Sut)/count(*)) sr_sutki
from #NormProbeg 
where (Probeg_Tek>3000 or datediff(day, StartProbeg, EndProbeg)>15)
group by Probeg_Norm
) kol_3_4 

on kol_1_2.Norm_1_2=kol_3_4.Norm_3_4

left outer join 

(select #NormProbeg.Probeg_Norm Norm_low_pol_sroka, (count(*)) kol_vag_low_pol_sroka
from #NormProbeg
     join dbo.VagPrivatRem on dbo.VagPrivatRem.Nom_Vag = #NormProbeg.Nom_Vag
where (#NormProbeg.Probeg_Tek>3000 or datediff(day, StartProbeg, EndProbeg)>15)
      and datediff(day, StartProbeg, PlanRem_dt)*Probeg_Sut<#NormProbeg.Probeg_Norm*1000/2
      --and DLINA>16000
      --and DLINA>20000
group by #NormProbeg.Probeg_Norm) temp2

on  kol_1_2.Norm_1_2=temp2.Norm_low_pol_sroka

left outer join 


(select #NormProbeg.Probeg_Norm Norma_pol_sroka, (count(*)) kol_vag_pol_sroka
from #NormProbeg
     join dbo.VagPrivatRem on dbo.VagPrivatRem.Nom_Vag = #NormProbeg.Nom_Vag
where (#NormProbeg.Probeg_Tek>3000 or datediff(day, StartProbeg, EndProbeg)>15)
      and datediff(day, StartProbeg, PlanRem_dt)*Probeg_Sut>#NormProbeg.Probeg_Norm*1000*2
      --and DLINA>16000
      --and DLINA>20000
group by #NormProbeg.Probeg_Norm) temp3

on kol_1_2.Norm_1_2=temp3.Norma_pol_sroka

left outer join 


(select #NormProbeg.Probeg_Norm Norm_fast_time, (count(*)) kol_vag_fast_time
from #NormProbeg
     join dbo.VagPrivatRem on dbo.VagPrivatRem.Nom_Vag = #NormProbeg.Nom_Vag
where (#NormProbeg.Probeg_Tek>3000 or datediff(day, StartProbeg, EndProbeg)>15)
      and datediff(day, StartProbeg, PlanRem_dt)*Probeg_Sut>#NormProbeg.Probeg_Norm*1000
      --and DLINA>16000
      --and DLINA>20000
group by #NormProbeg.Probeg_Norm) temp4

on kol_1_2.Norm_1_2=temp4.Norm_fast_time


order by Norm_1_2

и использовать их в подстановке второго запроса


Код:
---------максмум и минимум - выполняется дважды для каждого значения нормы:
--выбирается граница (верхняя и нижняя) для крайних 10
select top 10 * , datediff(day, StartProbeg, EndProbeg) from #NormProbeg
where Probeg_Norm=XXX
      and (Probeg_Tek>3000 or datediff(day, StartProbeg, EndProbeg)>15)

order by  Probeg_Sut --desc

--и по крайним считаем среднее значение :
select sum(Probeg_Sut)/count(*), count(*)
from #NormProbeg
where Probeg_Norm=XXX and Probeg_Sut<222
      and (Probeg_Tek>3000 or EndProbeg-StartProbeg>15)


переменной Probeg_Norm=XXX, на выходе сформировать одну общую табличку.
Pellegrino вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Найти значение переменной y в зависимости от значения переменной х Rishi Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 1 11.05.2011 20:25
Подстановка значения переменной как поле записи Noktikus Общие вопросы Delphi 2 17.04.2010 18:01
Запрос к БД с меняющейся переменной Pamparam Общие вопросы C/C++ 14 12.11.2009 19:34
Имя переменной как переменная. Как получить доступ к такой переменной? Denni Microsoft Office Access 8 02.04.2009 10:06
Работа с файлами (создание, удаление, открытие, связываение с переменной, очищение памяти переменной) Arkuz Общие вопросы Delphi 12 25.09.2007 20:47