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

Откуда:
Сообщений: 23
Я начинающий пользователь . Не могу разобраться как вставит один SELECT в другой

ВОТ Хранимая процедура

USE [skandik_yug]
GO
/****** Object:  StoredProcedure [dbo].[i_akt_ch_test]    Script Date: 04/11/2012 15:01:24 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[i_akt_ch_test]




@ord As int
 
 AS



SELECT Sum(j.j_sum) as sum1,a.ag_id,
       (SELECT top 1 d.doc_date From Documents d inner join journal j on d.doc_id=j.doc_id
                              
                              Where (j.acc_db in (364,36)) AND (d.ord_id=@ord) 
                              Order by d.doc_date  Desc) as date1,
       (SELECT top 1 d.doc_date From Documents d inner join journal j on d.doc_id=j.doc_id
                              
                              Where (j.acc_db in (364,36)) AND (d.ord_id=@ord) 
                              Order by d.doc_date) as date2,

p.prm_string,p1.prm_string as prm_string1, p2.prm_string as prm_string2,p2.prm_string/1.2 as prm_BEZNDS, p2.prm_string as prm_km, o1.obj_name, d.doc_no, d.doc_id into #a
From Documents d inner join journal j on d.doc_id=j.doc_id
                 inner join agents a on a.ag_id=j.j_ag1 
                 inner join objects o1 on o1.obj_id=j.j_obj
				 inner join doc_params p on p.doc_id=d.doc_id
				 inner join doc_params p1 on p.doc_id=p1.doc_id
				 inner join doc_params p2 on p.doc_id=p2.doc_id
WHERE (j.acc_db in (364,36)) AND (d.ord_id=@ord) and p.prm_id=29 and p1.prm_id=30 and p2.prm_id=31
group by a.ag_id,p.prm_string,p1.prm_string,p2.prm_string, o1.obj_name, d.doc_no, d.doc_id

SELECT  p.prm_string as prm_string3,p1.prm_string as prm_string4,d.doc_no, d.doc_id into #b
From Documents d inner join journal j on d.doc_id=j.doc_id
                 inner join doc_params p on p.doc_id=d.doc_id
				 inner join doc_params p1 on p.doc_id=p1.doc_id
WHERE (j.acc_db in (364,36)) AND (d.ord_id=@ord) and p.prm_id=32 and p1.prm_id=33 



SELECT p2.prm_string as prm_km, p.prm_string as prm_clock, d.doc_no, edizm =
(CASE 
WHEN p2.prm_string < p.prm_string Then 'часы'
ELSE 'км' 
--WHEN p.prm_string <= p2.prm_string then 'км'
--ELSE 'км2'
END) 
From Documents d inner join journal j on d.doc_id=j.doc_id
               inner join doc_params p on p.doc_id=d.doc_id
               inner join doc_params p1 on p.doc_id=p1.doc_id
               inner join doc_params p2 on p.doc_id=p2.doc_id 
WHERE p2.prm_id=31 and (j.acc_db in (364,36)) AND (d.ord_id=@ord) and p.prm_id=32 and p1.prm_id=33
group by p2.prm_string, p.prm_string, d.doc_no 


select #a.sum1,#a.ag_id, #a.date2,#a.date1,#a.obj_name,#a.doc_no,#a.prm_string,#a.prm_string1,#a.prm_string2,#b.prm_string3,#b.prm_string4 ,#a.doc_id, #a.prm_BEZNDS
from #a left join #b on #a.doc_id=#b.doc_id
order by doc_no
drop table #a


то есть
  SELECT p2.prm_string as prm_km, p.prm_string as prm_clock, d.doc_no, edizm =
(CASE 
WHEN p2.prm_string < p.prm_string Then 'часы'
ELSE 'км' 
--WHEN p.prm_string <= p2.prm_string then 'км'
--ELSE 'км2'
END) 
From Documents d inner join journal j on d.doc_id=j.doc_id
               inner join doc_params p on p.doc_id=d.doc_id
               inner join doc_params p1 on p.doc_id=p1.doc_id
               inner join doc_params p2 on p.doc_id=p2.doc_id 
WHERE p2.prm_id=31 and (j.acc_db in (364,36)) AND (d.ord_id=@ord) and p.prm_id=32 and p1.prm_id=33
group by p2.prm_string, p.prm_string, d.doc_no 
Order by edizm     


вставить в

 
select #a.sum1,#a.ag_id, #a.date2,#a.date1,#a.obj_name,#a.doc_no,#a.prm_string,#a.prm_string1,#a.prm_string2,#b.prm_string3,#b.prm_string4 ,#a.doc_id, #a.prm_BEZNDS
from #a left join #b on #a.doc_id=#b.doc_id
order by doc_no
drop table #a
сюда собираються все рекордсеты
11 апр 12, 16:10    [12400564]     Ответить | Цитировать Сообщить модератору
 Re: Как вставить один select в другой select  [new]
kDnZP
Member [заблокирован]

Откуда: ★[msg=16399436]★[msg=20850760]
Сообщений: 11289
Сергей Андр, у вас же есть уже тема тут: 12391868
Зачем создавать новую?
11 апр 12, 17:17    [12401095]     Ответить | Цитировать Сообщить модератору
 Re: Как вставить один select в другой select  [new]
Сергей Андр
Member

Откуда:
Сообщений: 23
kDnZP,

ответ прост! её не кто не смотрит
12 апр 12, 16:24    [12406991]     Ответить | Цитировать Сообщить модератору
 Re: Как вставить один select в другой select  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
Сергей Андр
kDnZP,

ответ прост! её не кто не смотрит
Это не повод их плодить.
12 апр 12, 17:12    [12407415]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить