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

Откуда:
Сообщений: 200
Есть хранимая процедура, в ней создается временная таблица #aa
вот код
create table #aa(ag_id int,ag_name varchar(50), Gsm float, Rem float, Mas float,Usl float,Zp float,PO float,Ar Float,S float) 

  Insert into #aa
          (ag_id, ag_name, gsm,mas,usl)
сначало заполняются первые 5 столбцов, потом стоит:
  Set  @N = @@rowcount

  update #aa
SET Ar =  (Select IsNull(cast(ap.prm_string as float),'') from  ag_params ap  inner join #aa on   #aa.ag_id=ap.ag_id         
            where ap.prm_id=12 )
и вот это ему не нравится
Subquery returned more than 1 value. This is not permitted when the subquery follows =, !=, <, <= , >, >= or when the subquery is used as an expression.
The statement has been terminated.
28 май 09, 11:29    [7238345]     Ответить | Цитировать Сообщить модератору
 Re: объединение таблиц  [new]
проходящий.
Guest
Рострига Артур,
ну а вопрос-то какой?
28 май 09, 11:32    [7238367]     Ответить | Цитировать Сообщить модератору
 Re: объединение таблиц  [new]
Паганель
Member

Откуда: Винница
Сообщений: 22552
Рострига Артур
Subquery returned more than 1 value.
ну так сделайте чтобы Subquery возвращал 1 значение
Какое именно - Вам решать, лучше Вас задачу никто знать не может
28 май 09, 11:34    [7238378]     Ответить | Цитировать Сообщить модератору
 Re: объединение таблиц  [new]
DENIS_CHEL
Member

Откуда:
Сообщений: 23097
Добавлю свои 5 копеек, я бы на вашем месте подумал нужен ли вам float, может можно обойтись decimal?
28 май 09, 11:37    [7238402]     Ответить | Цитировать Сообщить модератору
 Re: объединение таблиц  [new]
Рострига Артур
Member

Откуда:
Сообщений: 200
Все разобрался...просто не надо было приводить во float тип...
убрал все заработало...
там тип столбца float он подхватывает автомат..
а тип данных так т.к. там хранятся числа 41,6666666666667
28 май 09, 14:13    [7239638]     Ответить | Цитировать Сообщить модератору
 Re: объединение таблиц  [new]
vhomka
Member

Откуда:
Сообщений: 6
Рострига Артур
Все разобрался...просто не надо было приводить во float тип...
убрал все заработало...
там тип столбца float он подхватывает автомат..
а тип данных так т.к. там хранятся числа 41,6666666666667

А у меня такое сообщение вылазиет при следующем коде:
===========
update [MATERIALY]
set [MATERIALY].ostatok= [MATERIALY].ostatok-(SELECT	 
     sum(sh.[состав])
  FROM [Unis_b4].[dbo].[sxhema] sh
left join [jur_day] t on sh.[изделие]=t.[izdelie]
left join [sxhema] sx on sx.parentid=sh.rcd and sx.status in (-1,0)
group by sh.[изделие])
===========
сообщение об ошибке:
Msg 512, Level 16, State 1, Line 1
Subquery returned more than 1 value. This is not permitted when the subquery follows =, !=, <, <= , >, >= or when the subquery is used as an expression.
The statement has been terminated.
Warning: Null value is eliminated by an aggregate or other SET operation.
28 май 09, 14:39    [7239851]     Ответить | Цитировать Сообщить модератору
 Re: объединение таблиц  [new]
Рострига Артур
Member

Откуда:
Сообщений: 200
Убери
group by sh.[изделие]
28 май 09, 14:43    [7239905]     Ответить | Цитировать Сообщить модератору
 Re: объединение таблиц  [new]
DENIS_CHEL
Member

Откуда:
Сообщений: 23097
update [MATERIALY]
set [MATERIALY].ostatok= [MATERIALY].ostatok
	-(SELECT  sum(sh.[состав])  FROM [Unis_b4].[dbo].[sxhema] sh
left join [jur_day] t on sh.[изделие]=t.[izdelie]
left join [sxhema] sx on sx.parentid=sh.rcd and sx.status in (-1,0)
--Необходимо добавить условие какую имеено sum(sh.[состав]) взять из множества выбранных
WHERE sh.[поле]=условие выбора
group by sh.[изделие]
)

Рострига Артур
Убери

Не спасет...
28 май 09, 14:51    [7239968]     Ответить | Цитировать Сообщить модератору
 Re: объединение таблиц  [new]
vhomka
Member

Откуда:
Сообщений: 6
Рострига Артур
Убери
group by sh.[изделие]

а тогда значения правильно отнимутся?! у меня получается, чтов ТАб1 добавляются данные об использование материалов и количество использованного нужно отнять из ТАб2. Хелп плиз))
28 май 09, 14:53    [7239989]     Ответить | Цитировать Сообщить модератору
 Re: объединение таблиц  [new]
DENIS_CHEL
Member

Откуда:
Сообщений: 23097
Если вы хотите, что бы вам помогли оформите вопрос согласно пунктам 4 и 6 из Рекомендации по оформлению сообщений в форуме, или воспользуйтесь советом в предыдущем моем сообщении и решите свою задачу сами...
28 май 09, 14:56    [7240023]     Ответить | Цитировать Сообщить модератору
 Re: объединение таблиц  [new]
vhomka
Member

Откуда:
Сообщений: 6
DENIS_CHEL
Если вы хотите, что бы вам помогли оформите вопрос согласно пунктам 4 и 6 из Рекомендации по оформлению сообщений в форуме, или воспользуйтесь советом в предыдущем моем сообщении и решите свою задачу сами...

Microsoft SQL Server 2005 - 9.00.1399.06 (Intel X86) 
	Oct 14 2005 00:33:37 
	Copyright (c) 1988-2005 Microsoft Corporation
	Developer Edition on Windows NT 5.1 (Build 2600: Service Pack 2)
28 май 09, 15:43    [7240415]     Ответить | Цитировать Сообщить модератору
 Re: объединение таблиц  [new]
DENIS_CHEL
Member

Откуда:
Сообщений: 23097
это не относится к вашему вопросу, но тем не менее мой вам совет поставьте себе второй, а еще лучше 3 SP на SQL SERVER...

По поводу вопроса
SELECT	 
     sum(sh.[состав])
  FROM [Unis_b4].[dbo].[sxhema] sh
left join [jur_day] t on sh.[изделие]=t.[izdelie]
left join [sxhema] sx on sx.parentid=sh.rcd and sx.status in (-1,0)
group by sh.[изделие]
- этот запрос может возвращать больше одного значения (сообщение об ошибке вам об этом говорит), вам следует добавить в запрос блок where, что бы определить какое именно значение вам нужно, или добавить в select TOP 1 (т.е. брать первое из попавшегося и не важно что там)... решать вам...

Если вы оформите вопрос согласно пункту 6, то вам дадут точный ответ...
29 май 09, 08:09    [7242471]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить