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

Откуда:
Сообщений: 21
Добрый день, имеются таблицы, с которыми необходимо оперировать (имена полей и таблиц на русском языке):

№1 Узлы
ИмяУзлаИмяТаблицыСуточной
ВолодарскогоСуточная_106404_ТСРВ024М
ЛенинаСуточная_106320_ТСРВ024М
......


№2 соотвественно называется Суточная_106404_ТСРВ024М
ДатаВремя1Тпр11Тпр12Тпр13Тпр14
20.01.2012 23:59:59 0000
...............


Необходимо выполнить такой запрос: Необходимо получить такое ИмяУзла из таблицы Узлы, что ИмяТаблицыСуточной (которое является названием таблицы в БД) - данное поле становится названием второй части запроса, из которого выбираются все поля и проверяется условие, что сумма Тпр11,Тпр12,Тпр13,Тпр14 > 0,5 часа и ДатаВремя1 не соответствует текущей дате в формате DD.MM.YYYY (23:59:59 не учитывается). Заранее благодарю!
30 янв 12, 10:17    [11994353]     Ответить | Цитировать Сообщить модератору
 Re: помогите выполнить запрос  [new]
WarAnt
Member

Откуда: Питер
Сообщений: 2423
eshimischi,

ну если я все правильно понял динамический запрос вас спасет
30 янв 12, 10:44    [11994528]     Ответить | Цитировать Сообщить модератору
 Re: помогите выполнить запрос  [new]
eshimischi
Member

Откуда:
Сообщений: 21
eshimischi
Добрый день, имеются таблицы, с которыми необходимо оперировать (имена полей и таблиц на русском языке):

№1 Узлы
ИмяУзлаИмяТаблицыСуточной
ВолодарскогоСуточная_106404_ТСРВ024М
ЛенинаСуточная_106320_ТСРВ024М
......


№2 соотвественно называется Суточная_106404_ТСРВ024М
ДатаВремя1Тпр11Тпр12Тпр13Тпр14
20.01.2012 23:59:59 0000
...............


Необходимо выполнить такой запрос: Необходимо получить такое ИмяУзла из таблицы Узлы, что ИмяТаблицыСуточной (которое является названием таблицы в БД) - данное поле становится названием второй части запроса, из которого выбираются все поля и проверяется условие, что сумма Тпр11,Тпр12,Тпр13,Тпр14 > 0,5 часа и ДатаВремя1 не соответствует текущей дате в формате DD.MM.YYYY (23:59:59 не учитывается). Заранее благодарю!

Платформа: Microsoft SQL Server 2008 R2 Sp1 x64, Windows Server 2008 R2 x64
30 янв 12, 10:44    [11994530]     Ответить | Цитировать Сообщить модератору
 Re: помогите выполнить запрос  [new]
Bator
Member

Откуда: Порт пяти морей
Сообщений: 439
eshimischi,

В курсоре по узлы собираешь строку динамического запроса.
30 янв 12, 10:46    [11994547]     Ответить | Цитировать Сообщить модератору
 Re: помогите выполнить запрос  [new]
eshimischi
Member

Откуда:
Сообщений: 21
WarAnt, проблема в том что не супер спец в SQL посему и обратился за помощью - приблизительно каким образом мы его можем составить - данный запрос?
30 янв 12, 10:46    [11994549]     Ответить | Цитировать Сообщить модератору
 Re: помогите выполнить запрос  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
eshimischi
WarAnt, проблема в том что не супер спец в SQL посему и обратился за помощью - приблизительно каким образом мы его можем составить - данный запрос?
Прочитав ТОП 10 вопросов, десятый вопрос.
30 янв 12, 10:47    [11994565]     Ответить | Цитировать Сообщить модератору
 Re: помогите выполнить запрос  [new]
Ken@t
Member

Откуда: 大地
Сообщений: 3265
eshimischi,

DECLARE @Узлы table
(
 ИмяУзла varchar(32)
 ,ИмяТаблицыСуточной varchar(128)
)

insert @Узлы (ИмяУзла ,ИмяТаблицыСуточной) values ('Володарского','Суточная_106404_ТСРВ024М')
insert @Узлы (ИмяУзла ,ИмяТаблицыСуточной) values ('Ленина ','Суточная_106320_ТСРВ024М')

DECLARE @SQL varchar(max)



SELECT @SQL = ISNULL(@SQL + CHAR(13)+' UNION ALL '+ CHAR(13),'')  +
 'SELECT '''+ИмяТаблицыСуточной +''' AS TABLENAME, TS.* FROM '+T.ИмяТаблицыСуточной + ' TS WHERE  Тпр11+Тпр12+Тпр13+Тпр14 >0.5'
FROM (
 SELECT DISTINCT ИмяТаблицыСуточной  FROM @Узлы  ) T

PRINT @SQL
-- EXEC (@SQL)


как то - так , допилите там до нужного.
30 янв 12, 10:58    [11994650]     Ответить | Цитировать Сообщить модератору
 Re: помогите выполнить запрос  [new]
eshimischi
Member

Откуда:
Сообщений: 21
Ken@t, низкий поклон! допилю сам)
30 янв 12, 11:04    [11994705]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить