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

Откуда: Украина, Киев-Одесса
Сообщений: 182
Возможно есть способ оптимизировать код
Банки можна определить по одному из двух полей, плюс нужно еще включить параметр по дате и виду
Выполняется долго


 begin
 DECLARE @year  varchar(4) = '2012' ;
 DECLARE @vid   nvarchar(255) = N'%ровільне страхування май%' 
  
 
 select 
 (select  sum ([76])  FROM [REPORT].[dbo].[76] where (Beneficiary like N'%кредо%' or externalchannel like N'%кредо%') and vid like @vid
  and (year ([DatePosting]) = @year)) as 'Кредо'  ,
  (select  sum ([76])   FROM [REPORT].[dbo].[76] where (Beneficiary like N'%ідея%' or externalchannel like N'%ідея%')and vid like @vid
  and (year ([DatePosting]) = @year))as 'Ідеябанк',
  (select  sum ([76])   FROM [REPORT].[dbo].[76] where (Beneficiary like N'%укр_кс_м%' or externalchannel like N'%укр_кс_м%' or Beneficiary like N'%кспортно%' or externalchannel like N'%кспортно%' )and vid like @vid
  and (year ([DatePosting]) = @year))as 'Укрэксимбанк',
  (select  sum ([76])   FROM [REPORT].[dbo].[76] where (Beneficiary like N'%бм_б%' or externalchannel like N'%бм_б%')and vid like @vid
  and (year ([DatePosting]) = @year))as 'БМ Банк',
  (select  sum ([76])   FROM [REPORT].[dbo].[76] where (Beneficiary like N'%Сберб%' or externalchannel like N'%Сберб%')and vid like @vid
  and (year ([DatePosting]) = @year))as 'Сбербанк',
  (select  sum ([76])   FROM [REPORT].[dbo].[76] where (Beneficiary like N'%пумб%' or externalchannel like N'%пумб%' or Beneficiary like N'%перший у%' or externalchannel like N'%перший у%')and vid like @vid
  and (year ([DatePosting]) = @year))as 'ПУМБ',
  (select  sum ([76])   FROM [REPORT].[dbo].[76] where (Beneficiary like N'%пром_нвест%' or externalchannel like N'%пром_нвест%')and vid like @vid
  and (year ([DatePosting]) = @year))as 'Проминвестбанк',
  (select  sum ([76])   FROM [REPORT].[dbo].[76] where (Beneficiary like N'%кредит_дн%' or externalchannel like N'%кредит_дн%')and vid like @vid
  and (year ([DatePosting]) = @year))as 'Банк Кредит Днипро', ....  список длинный

  end


Код ниже выполняется за считанные минуты, но не позволяет вывести сумму в разрезе каждого банка.
может есть альтернативные методы получить результат с предыдущего запроса, но со скоростью вот этого:

SELECT month ([DateContract]) as 'Месяц'
	  ,[LB1]
	  ,[LB2]
	  ,vid
	  , sum ([76]) as 'Начислено'
      
     
  FROM [REPORT].[dbo].[76]
  where (year ([DatePosting]) = '2013') and (
  Beneficiary like N'%укр_кс_м%' or externalchannel like N'%укр_кс_м%' or Beneficiary like N'%кспортно%' or externalchannel like N'%кспортно%' 
  or Beneficiary like N'%бм_б%' or externalchannel like N'%бм_б%' or Beneficiary like N'%cберб%' or externalchannel like N'%cберб%'
  or Beneficiary like N'%пумб%' or externalchannel like N'%пумб%' or Beneficiary like N'%перший у%' or externalchannel like N'%перший у%'
  or Beneficiary like N'%пром_нвест%' or externalchannel like N'%пром_нвест%' or Beneficiary like N'%кредит_дн%' or externalchannel like N'%кредит_дн%'
  or Beneficiary like N'%діві%банк%' or externalchannel like N'%діві%банк%' or Beneficiary like N'%отп б%' or externalchannel like N'%отп б%'  ....  список длинный
  group by  month ([DateContract]), [LB1],[LB2], Vid
31 янв 14, 20:18    [15502954]     Ответить | Цитировать Сообщить модератору
 Re: оптимизация запроса  [new]
SERG1257
Member

Откуда:
Сообщений: 2874
sum(case when Beneficiary like N'%кредо%' or externalchannel like N'%кредо%') and vid like @vid
  and (year ([DatePosting]) = @year) then [76] else 0 end) as 'Кредо' 
31 янв 14, 20:40    [15503009]     Ответить | Цитировать Сообщить модератору
 Re: оптимизация запроса  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
googlogmob,

это не Вам я вчера присоветовал не накладывать ограничения на функции от поля, а не на само поле?
Срочно выбросить year([DatePosting]), заменить на ограничение на [DatePosting].
Возможно, после этого поможет индекс по [DatePosting]
31 янв 14, 20:49    [15503031]     Ответить | Цитировать Сообщить модератору
 Re: оптимизация запроса  [new]
o-o
Guest
простите, коли не угадаю,
но вот это вот:

%кредо% -> Кредо
%укр_кс_м% -> Укрэксимбанк
...
%пром_нвест% -> Проминвестбанк

почему-то наводит на мысль,
что ТС-у на самом деле не нужны процентики в начале названий банков,
сдается мне, это он так "воюет" с прописными и строчными,
ну в смысле, считает, что для отлова ПромИнвест, промИнвест, Проминвест,... надо использовать %пром_нвест%
31 янв 14, 23:30    [15503423]     Ответить | Цитировать Сообщить модератору
 Re: оптимизация запроса  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31956
o-o
почему-то наводит на мысль,
что ТС-у на самом деле не нужны процентики в начале названий банков,
сдается мне, это он так "воюет" с прописными и строчными,
ну в смысле, считает, что для отлова ПромИнвест, промИнвест, Проминвест,... надо использовать %пром_нвест%
Да просто данные грязные, нужно нормальную модель делать.

Но скорее всего это такая "грязная" таблица, какой то левый репорт, не переделать.

Тода первое, что нужно сделать - как сказал iap, не использовать функцию для ограничения дат. Если ограничение хорошее, селективное, это сразу решит проблему с производительностью.

Если не решит, то нужно вместо набора:
... or Beneficiary like N'%бм_б%' or externalchannel like N'%бм_б%' ...

сделать справочник со всеми вариантами названий и джойнить с ним без LIKE
31 янв 14, 23:39    [15503446]     Ответить | Цитировать Сообщить модератору
 Re: оптимизация запроса  [new]
googlogmob
Member

Откуда: Украина, Киев-Одесса
Сообщений: 182
o-o
простите, коли не угадаю,
но вот это вот:

%кредо% -> Кредо
%укр_кс_м% -> Укрэксимбанк
...
%пром_нвест% -> Проминвестбанк

почему-то наводит на мысль,
что ТС-у на самом деле не нужны процентики в начале названий банков,
сдается мне, это он так "воюет" с прописными и строчными,
ну в смысле, считает, что для отлова ПромИнвест, промИнвест, Проминвест,... надо использовать %пром_нвест%


на само деле нужны, ибо качество учета и обозначения контрагентов в базе данных печальное..
может быть ооо проминвест, проминвест ооо, ооо промінвест, например
с укрэксим вообще беда - шесть вариаций находил

вся трабла что нет сврки на ункальнокость кода едрпоу, и каждый заводит контрагента как хочет
1 фев 14, 10:13    [15503988]     Ответить | Цитировать Сообщить модератору
 Re: оптимизация запроса  [new]
googlogmob
Member

Откуда: Украина, Киев-Одесса
Сообщений: 182
alexeyvg
o-o
почему-то наводит на мысль,
что ТС-у на самом деле не нужны процентики в начале названий банков,
сдается мне, это он так "воюет" с прописными и строчными,
ну в смысле, считает, что для отлова ПромИнвест, промИнвест, Проминвест,... надо использовать %пром_нвест%
Да просто данные грязные, нужно нормальную модель делать.

Но скорее всего это такая "грязная" таблица, какой то левый репорт, не переделать.


Так и есть.

alexeyvg

Тода первое, что нужно сделать - как сказал iap, не использовать функцию для ограничения дат. Если ограничение хорошее, селективное, это сразу решит проблему с производительностью.


Сегодня перепишу, попробую. Пришлю что получилось

alexeyvg
Если не решит, то нужно вместо набора:
... or Beneficiary like N'%бм_б%' or externalchannel like N'%бм_б%' ...

сделать справочник со всеми вариантами названий и джойнить с ним без LIKE


Это анреал :( Контрагенты могут заноситься и в будущем периоде, а предугадат полет человечекой фантазии при написании названия почти невозможно. к сожалению, в этой организции нет технического контроля на уникальность лиц по инн или едрпоу
Проходится перебирать все возможные варианты
1 фев 14, 10:22    [15503998]     Ответить | Цитировать Сообщить модератору
 Re: оптимизация запроса  [new]
googlogmob
Member

Откуда: Украина, Киев-Одесса
Сообщений: 182
примнил след.:

begin
 DECLARE @date1  varchar(8) = '20120101' ; 
 DECLARE @date2  varchar(8) = '20121231' ;
 DECLARE @vid  nvarchar(8) = 'абракадабра'
 
 select 
 (select  sum ([76])  FROM [REPORT].[dbo].[76] where (Beneficiary like N'%кредо%' or externalchannel like N'%кредо%') and (vid like @vid)
  and ([DatePosting] >= @date1 and [DatePosting] <=@date2) as 'Кредо' 
 


результат - 6 минут (для сравнения - 34 минути с (year ([DatePosting]) = @year) :)

Огромное Спасибо
1 фев 14, 12:35    [15504172]     Ответить | Цитировать Сообщить модератору
 Re: оптимизация запроса  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31956
googlogmob
alexeyvg
сделать справочник со всеми вариантами названий и джойнить с ним без LIKE


Это анреал :( Контрагенты могут заноситься и в будущем периоде, а предугадат полет человечекой фантазии при написании названия почти невозможно. к сожалению, в этой организции нет технического контроля на уникальность лиц по инн или едрпоу
Проходится перебирать все возможные варианты
Так вы перебираете варианты в коде, а можно их перебирать в справочнике.

Единственно, в коде это покрывает больше вариантов, так что менять приходится реже...

В общем, что то такое можно обдумать...

Ещё одно решение - если это некий постоянный признак пригодности записи для запроса, можно сделать это в виде флага, который можно апдэйтить при добавлении записи в таблицы типа [REPORT].[dbo].[76], ну и сделать инедкс (flag, DatePosting)
Так как чтений много, а запись одна, то это будет выгодно.
1 фев 14, 12:48    [15504194]     Ответить | Цитировать Сообщить модератору
 Re: оптимизация запроса  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
googlogmob
примнил след.:

begin
 DECLARE @date1  varchar(8) = '20120101' ; 
 DECLARE @date2  varchar(8) = '20121231' ;
 DECLARE @vid  nvarchar(8) = 'абракадабра'
 
 select 
 (select  sum ([76])  FROM [REPORT].[dbo].[76] where (Beneficiary like N'%кредо%' or externalchannel like N'%кредо%') and (vid like @vid)
  and ([DatePosting] >= @date1 and [DatePosting] <=@date2) as 'Кредо' 
 



результат - 6 минут (для сравнения - 34 минути с (year ([DatePosting]) = @year) :)

Огромное Спасибо
Для полей типа даты со временем это неправильно!
Надо так:
DECLARE
 @date1 DATE='2012'
,@date2 DATE='2013'
,@vid nvarchar(8)=N'абракадабра';
 
select 
 (select  sum([76])  FROM [REPORT].[dbo].[76] where (Beneficiary like N'%кредо%' or externalchannel like N'%кредо%') and (vid like @vid)
  and ([DatePosting]>=@date1 and [DatePosting]< @date2) as 'Кредо'
1 фев 14, 13:14    [15504237]     Ответить | Цитировать Сообщить модератору
 Re: оптимизация запроса  [new]
googlogmob
Member

Откуда: Украина, Киев-Одесса
Сообщений: 182
 begin
 DECLARE @date1  varchar(8) = '20120101' ; 
 DECLARE @date2  varchar(8) = '20130101' ;
 DECLARE @vid   nvarchar(255) = N'%абрак%' 
  
 
 select 
 (select  sum ([76])  FROM [REPORT].[dbo].[76] where (Beneficiary like N'%кредо%' or externalchannel like N'%кредо%') and vid like @vid
  and ([DatePosting] >= @date1 and [DatePosting] <@date2)) as 'Кредо'  ,


а нельзя использовать between?
1 фев 14, 13:31    [15504281]     Ответить | Цитировать Сообщить модератору
 Re: оптимизация запроса  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31956
googlogmob
а нельзя использовать between?
Нет, он неоднозначно трактует диапазон, то есть неудобен для неточных типов.
1 фев 14, 14:12    [15504345]     Ответить | Цитировать Сообщить модератору
 Re: оптимизация запроса  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
googlogmob
 begin
 DECLARE @date1  varchar(8) = '20120101' ; 
 DECLARE @date2  varchar(8) = '20130101' ;
 DECLARE @vid   nvarchar(255) = N'%абрак%' 
  
 
 select 
 (select  sum ([76])  FROM [REPORT].[dbo].[76] where (Beneficiary like N'%кредо%' or externalchannel like N'%кредо%') and vid like @vid
  and ([DatePosting] >= @date1 and [DatePosting] <@date2)) as 'Кредо'  ,



а нельзя использовать between?
Для поля типа DATE можно, конечно
1 фев 14, 14:43    [15504407]     Ответить | Цитировать Сообщить модератору
 Re: оптимизация запроса  [new]
Веrd
Member

Откуда: Лазаревское
Сообщений: 588
googlogmob
Возможно есть способ оптимизировать код
Банки можна определить по одному из двух полей, плюс нужно еще включить параметр по дате и виду
Выполняется долго


 begin
 DECLARE @year  varchar(4) = '2012' ;
 DECLARE @vid   nvarchar(255) = N'%ровільне страхування май%' 
  
 
 select 
 (select  sum ([76])  FROM [REPORT].[dbo].[76] where (Beneficiary like N'%кредо%' or externalchannel like N'%кредо%') and vid like @vid
  and (year ([DatePosting]) = @year)) as 'Кредо'  ,
  (select  sum ([76])   FROM [REPORT].[dbo].[76] where (Beneficiary like N'%ідея%' or externalchannel like N'%ідея%')and vid like @vid
  and (year ([DatePosting]) = @year))as 'Ідеябанк',
  (select  sum ([76])   FROM [REPORT].[dbo].[76] where (Beneficiary like N'%укр_кс_м%' or externalchannel like N'%укр_кс_м%' or Beneficiary like N'%кспортно%' or externalchannel like N'%кспортно%' )and vid like @vid
  and (year ([DatePosting]) = @year))as 'Укрэксимбанк',
  (select  sum ([76])   FROM [REPORT].[dbo].[76] where (Beneficiary like N'%бм_б%' or externalchannel like N'%бм_б%')and vid like @vid
  and (year ([DatePosting]) = @year))as 'БМ Банк',
  (select  sum ([76])   FROM [REPORT].[dbo].[76] where (Beneficiary like N'%Сберб%' or externalchannel like N'%Сберб%')and vid like @vid
  and (year ([DatePosting]) = @year))as 'Сбербанк',
  (select  sum ([76])   FROM [REPORT].[dbo].[76] where (Beneficiary like N'%пумб%' or externalchannel like N'%пумб%' or Beneficiary like N'%перший у%' or externalchannel like N'%перший у%')and vid like @vid
  and (year ([DatePosting]) = @year))as 'ПУМБ',
  (select  sum ([76])   FROM [REPORT].[dbo].[76] where (Beneficiary like N'%пром_нвест%' or externalchannel like N'%пром_нвест%')and vid like @vid
  and (year ([DatePosting]) = @year))as 'Проминвестбанк',
  (select  sum ([76])   FROM [REPORT].[dbo].[76] where (Beneficiary like N'%кредит_дн%' or externalchannel like N'%кредит_дн%')and vid like @vid
  and (year ([DatePosting]) = @year))as 'Банк Кредит Днипро', ....  список длинный

  end




Все вложенные селекты сначала выполнить отдельно и результаты распихать в переменные.
Оптимизатору это как минимум не навредит.

Список длинный - ну а что делать, надо.

А вообще, имхо, за такое огромное количество вложенных селектов базистов надо пиздить.
3 фев 14, 17:23    [15511853]     Ответить | Цитировать Сообщить модератору
 Re: оптимизация запроса  [new]
StarikNavy
Member

Откуда: Москва
Сообщений: 2414
googlogmob,

если нельзя создать нормальный Справочник (и например обновлять каждую ночь), можно попробовать все эти
%кредо% -> Кредо
%укр_кс_м% -> Укрэксимбанк
...
предварительно запихать во временную таблицу (с индексом)
3 фев 14, 17:31    [15511913]     Ответить | Цитировать Сообщить модератору
 Re: оптимизация запроса  [new]
Веrd
Member

Откуда: Лазаревское
Сообщений: 588
Во вторых: прежде чем это всё делать, надо сначала отобрать необходимые поля во временную таблицу и работать потом с ней:
SELECT Beneficiary, externalchannel, [76] INTO #Temp FROM [REPORT].[dbo].[76] WHERE year ([DatePosting]) = @year AND vid like @vid

(насколько я понял, [76] - это и название таблицы, и название поля таблицы?)

В третьих: надо делать это всё за один проход таблицы.
Почитайте про GROUP BY и много думайте головой. Это действительно возможно.

В итоге должна получиться таблица с двумя колонками: названием банка и суммой. Из неё и будете уже всё брать.


P.S.
Делать вот так:
@year  varchar(4) = '2012'
...
year ([DatePosting]) = @year

это говнокод.
Тип должен быть INT, а не varchar(4)
3 фев 14, 17:38    [15511966]     Ответить | Цитировать Сообщить модератору
 Re: оптимизация запроса  [new]
Cygapb-007
Member

Откуда:
Сообщений: 1677
googlogmob
alexeyvg
Если не решит, то нужно вместо набора:
... or Beneficiary like N'%бм_б%' or externalchannel like N'%бм_б%' ...

сделать справочник со всеми вариантами названий и джойнить с ним без LIKE


Это анреал :( Контрагенты могут заноситься и в будущем периоде, а предугадат полет человечекой фантазии при написании названия почти невозможно. к сожалению, в этой организции нет технического контроля на уникальность лиц по инн или едрпоу
Проходится перебирать все возможные варианты
Почему же анреал??
-- CREATE INDEX IX_76 ON [76] ([DatePosting]) include (vid, Beneficiary, externalchannel, [76]);

DECLARE @year VARCHAR(4) = '2012';
DECLARE @vid NVARCHAR(255) = N'%ровільне страхування май%';

DECLARE @bank TABLE (mask NVARCHAR(100), name VARCHAR(100));
INSERT @bank (mask, name) VALUES 
  (N'%кредо%', 'Кредо')
  ,(N'%ідея%', 'Ідеябанк')
  ,(N'%укр_кс_м%', 'Укрэксимбанк') 
  -- и т.д.
  ;

SELECT *
FROM (
  SELECT b.name, SUM([76]) [76]
  FROM [76] t
  JOIN @bank b ON t.Beneficiary LIKE b.mask OR t.externalchannel LIKE b.mask
  WHERE 
    [DatePosting] >= dateadd(year, @year - 1900, 0) 
    AND [DatePosting] < dateadd(year, @year - 1900 + 1, 0)
    AND vid LIKE @vid 
  GROUP BY b.NAME
  ) g
pivot(sum([76]) FOR name IN (
  Кредо
  ,Ідеябанк
  ,Укрэксимбанк
  ,[БМ Банк]
  ,Сбербанк 
  ,ПУМБ
  ,Проминвестбанк
  ,[Банк Кредит Днипро]
  -- и т.д., желательно в соответствии с @bank, но - не обязательно))
)) p;
PS pivot - не обязательно :)
3 фев 14, 18:26    [15512248]     Ответить | Цитировать Сообщить модератору
 Re: оптимизация запроса  [new]
googlogmob
Member

Откуда: Украина, Киев-Одесса
Сообщений: 182
Спасибо, Cygapb-007,

А если существуют несколько вариантов учета одного банка, можно прописать следующее?

INSERT @bank (mask, name) VALUES 
  (N'%кредо%', 'Кредо')
  ,(N'%ідея%', 'Ідеябанк')
  ,(N'%державний експортно%', 'Укрэксимбанк')
  ,(N'%укр_кс_м%', 'Укрэксимбанк') 
  -- и т.д.
  ;
4 фев 14, 11:24    [15514813]     Ответить | Цитировать Сообщить модератору
 Re: оптимизация запроса  [new]
googlogmob
Member

Откуда: Украина, Киев-Одесса
Сообщений: 182
Cygapb-007,

по одному варианту поиска наименования банка такой способ действительно обрабатівается бістрее, но как быть с несколькими вариантами (например в предыд. посте), как записать данные по двум разным критериям отбора в графу одного банка?
4 фев 14, 17:58    [15518389]     Ответить | Цитировать Сообщить модератору
 Re: оптимизация запроса  [new]
Glory
Member

Откуда:
Сообщений: 104751
googlogmob
как записать данные по двум разным критериям отбора в графу одного банка?

Ну так вы же для разных масок зададите одинаковый name
,(N'%державний експортно%', 'Укрэксимбанк')
,(N'%укр_кс_м%', 'Укрэксимбанк')
4 фев 14, 18:05    [15518447]     Ответить | Цитировать Сообщить модератору
 Re: оптимизация запроса  [new]
googlogmob
Member

Откуда: Украина, Киев-Одесса
Сообщений: 182
Glory
googlogmob
как записать данные по двум разным критериям отбора в графу одного банка?

Ну так вы же для разных масок зададите одинаковый name
,(N'%державний експортно%', 'Укрэксимбанк')
,(N'%укр_кс_м%', 'Укрэксимбанк')


а процесс подразумевает сумирование итого таких масок при одиннаковых name?
5 фев 14, 10:54    [15520887]     Ответить | Цитировать Сообщить модератору
 Re: оптимизация запроса  [new]
Glory
Member

Откуда:
Сообщений: 104751
googlogmob
Glory
пропущено...

Ну так вы же для разных масок зададите одинаковый name
,(N'%державний експортно%', 'Укрэксимбанк')
,(N'%укр_кс_м%', 'Укрэксимбанк')


а процесс подразумевает сумирование итого таких масок при одиннаковых name?

А как вы думаете, что делает GROUP BY b.NAME ?
5 фев 14, 11:03    [15520935]     Ответить | Цитировать Сообщить модератору
 Re: оптимизация запроса  [new]
googlogmob
Member

Откуда: Украина, Киев-Одесса
Сообщений: 182
помогите пожалуйста, нужно обработать данные, а на вскидку ничего не получается, и времени мало дали..
этот запрос возвращает name - ???, Количество - 1. Пивот не нужен, а только количество контрактов по каждому name
Буду очень благодарен за дельную помощь

DECLARE @as TABLE (mask NVARCHAR(100), name NVARCHAR(100));
INSERT @as (mask, name) VALUES 
  (N'%Ера%', 'Ера'),
(N'%Samand%', 'Samand')
  ;

SELECT *
FROM (
  SELECT  b.name, count(t.ContractNumber) as 'Количество'
  FROM [REPORT].[dbo].[76]  t
  JOIN @as b ON  t.externalchannel LIKE b.mask  OR t.InternalChannel LIKE b.mask
  WHERE 
    [DatePosting] between '20130901' and '20131231'
    AND vid LIKE N'%транспорту, кр%' 
  GROUP BY  b.name )p
 
5 фев 14, 12:18    [15521599]     Ответить | Цитировать Сообщить модератору
 Re: оптимизация запроса  [new]
Glory
Member

Откуда:
Сообщений: 104751
googlogmob
Буду очень благодарен за дельную помощь

Надо подъехать к вам и "обработать данные" ? Или в чем проблема ?
5 фев 14, 12:22    [15521638]     Ответить | Цитировать Сообщить модератору
 Re: оптимизация запроса  [new]
googlogmob
Member

Откуда: Украина, Киев-Одесса
Сообщений: 182
Glory
googlogmob
Буду очень благодарен за дельную помощь

Надо подъехать к вам и "обработать данные" ? Или в чем проблема ?


та нет, я разве просил чтото подобное?
запрос в посте выше возвращает ошибку. может кто-то подскаже в чем проблема. Не более чем
5 фев 14, 12:26    [15521693]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить