Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
T-SQL
|
|||
|---|---|---|---|
|
#18+
Господа, хелп! Запариваюсь окончательно. Есть sp, начинающаяся примерно так: CREATE PROCEDURE test (@tbl char(20)) AS declare @sum1 float declare @str char(200) set @str='select @sum1=sum1 from '+@tbl+' where cod=1' exec (@str) Выдает ошибку типа "ты должен определить переменную @sum1". Хорошо, думаю, сделаем иначе. Создадим таблицу serv_tbl, а потом ... set @str='update serv_tbl set sum1=t1.sum1 from '+@tbl+' t1 where cod=1' exec (@str) select @sum1=sum1 from serv_tbl where (... и т.д.) Гуд, проходит! Но...Если в предложении select есть суммирование значений полей, то вот такая хрень... set @str='update serv_tbl set sum1=SUM(t1.sum1) from '+@tbl+' t1 where field2=1' exec (@str) ...не проходит. Говорит, мол, "update и групповые операции - понятия не совместимые, переделывай, дорогуша, свою процедуру, хе!" Потом были безуспешные попытки через временные таблицы... В общем никак, чево то.. Итак, вопрос: "Необходимо получить в переменную значение, которое является результатом суммирования некого числового поля таблицы, имя которой передается в процедуру в качестве параметра". Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.05.2002, 10:12 |
|
||
|
T-SQL
|
|||
|---|---|---|---|
|
#18+
\ndeclare @var1 int, @var2 varchar(100), @var3 varchar(100), @var4 int declare @mysql nvarchar(4000) set @mysql = 'set @var1 = @var1 + @var4; set @var2 = ''CCCC''; set @var3 = @var3 + ''dddd''' set @var1 = 0 set @var2 = 'BBBB' set @var3 = 'AAAA' set @var4 = 10 select @var1, @var2, @var3 exec sp_executesql @mysql, N'@var1 int out, @var2 varchar(100) out, @var3 varchar(100) out, @var4 int', @var1 = @var1 out, @var2 = @var2 out, @var3 = @var3 out, @var4 = @var4 select @var1, @var2, @var3 http://www.sql.ru/cgi-bin/UltraBoard/UltraBoard.pl?Action=ShowPost&Board=mssql&Post=4156&Idle=365&Sort=0&Order=Descend&Page=0 Говорит, мол, "update и групповые операции - понятия не совместимые, переделывай, дорогуша, свою процедуру, хе!" \ncreate table #temp1(f1 int, f2 int) create table #temp2(f1 int, f2 int) insert #temp1 values(1, 0) insert #temp1 values(2, 0) insert #temp2 values(1, 10) insert #temp2 values(1, 5) insert #temp2 values(2, 1) insert #temp2 values(2, 2) select * from #temp1 update a set f2 = (select sum(f2) from #temp2 b where b.f1 = a.f1) from #temp1 a select * from #temp1 drop table #temp1 drop table #temp2 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.05.2002, 10:45 |
|
||
|
|

start [/forum/topic.php?fid=46&msg=32029840&tid=1822804]: |
0ms |
get settings: |
8ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
52ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
36ms |
get tp. blocked users: |
1ms |
| others: | 278ms |
| total: | 409ms |

| 0 / 0 |
