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

Откуда:
Сообщений: 57
Здравствуйте.
Как сделать сложный запрос.
1 Выбираем даннные из таб1
2 Выбираем даннные из таб2
3 Выбираем даннные из таб3
И в итоге делаем select на основе предыдущих 3 выборок?
Если можно простенький примерчик, пожалуйста.
29 сен 05, 11:59    [1921867]     Ответить | Цитировать Сообщить модератору
 Re: помогите с запросом  [new]
vooo
Member

Откуда:
Сообщений: 1316
Вы не написали исходные данные и что в итоге хотите получить
Поэтому можно только догадываться

НАПРИМЕР
1 select * from
(select * from a JOIN b join c on <условие>) tmp

2
select * from
(select * from a
<условие>
UNION ALL
select * from b
<условие>
UNION ALL
select * from c
<условие>
) tmp
В данном случае 2 выбираемые поля должны быть одного типа (приведены к одному типу)
29 сен 05, 12:09    [1921968]     Ответить | Цитировать Сообщить модератору
 Re: помогите с запросом  [new]
A.Klimenko
Member

Откуда:
Сообщений: 57
1. select asd,1,2,3 from 123
2. select asd,4,5,6 from 456
3. select asd,7,8,9 from 789
И в итоге необходимо получить
select select1.asd,1,2,3,4,5,6,7,8,9
from select1 select2 select3
where select1.asd=select2.asd
and select1.asd=select3.asd
Вроде это реализуется с промощью ХП
29 сен 05, 12:36    [1922218]     Ответить | Цитировать Сообщить модератору
 Re: помогите с запросом  [new]
Проходимец
Member

Откуда: Москва
Сообщений: 571
ну собсно так и пишешь..

select asd, 1,2,3,4,5,6,7,8,9 from (
select 
   asd,1,2,3 from a
inner join 
select 
   4,5,6 from b on a.asd = b.asd
inner join 
select 
   7,8,9 from c on a.asd = c.asd) X
29 сен 05, 12:44    [1922274]     Ответить | Цитировать Сообщить модератору
 Re: помогите с запросом  [new]
Проходимец
Member

Откуда: Москва
Сообщений: 571
create table #a (asd int)
create table #b (asd int)
create table #c (asd int)

insert into #a select 1
insert into #b select 1
insert into #c select 1


select #a.asd, 1, 2, 3, 4, 5, 6, 7, 8, 9 from #a
inner join (select asd, 4 as col4, 5 as col5, 6 as col6 from #b) b on #a.asd = b.asd
inner join (select asd, 7 as col7, 8 as col8, 9 as col9 from #c) c on #a.asd = c.asd


drop table #a
drop table #b
drop table #c

Вот так если поточнее...
29 сен 05, 12:54    [1922350]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить