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

Откуда:
Сообщений: 19
Есть процедура, которая считает остаток товара на конец дня. Надо вставить значение, которое она получила в таблицу SOST_SKL. Да и не просто вставить то, что она посчитала, а чтобы сделалась запись в этой таблице, которая будет содержать id склада, id товара, количество товара (которое процедура считает) и дату.
Знаю, что нужно использовать insert into, но все мои попытке тщетны! Помогите, пожалуйста!!!
Вот процедура:
@ID_SKLAD smallint,
@D smalldatetime
as
select r.ID_TOV as тов , Sum (r.REST) as пр
into #tab
from dbo.REGISTR as r
where CO = 1 and r.DATA_REG =@D
Group by r.ID_TOV

select r.ID_TOV as тов , Sum (r.REST) as рас
into #tab1
from dbo.REGISTR as r
where CO = 0 and r.DATA_REG =@D
Group by r.ID_TOV

Select s.ID_TOV, isnull (tab.пр,0) - isnull(tab1.рас,0)+ isnull (s.KOL_KON,0) As A4
From dbo.SOST_SKL as s left join
dbo.#tab as tab on s.ID_TOV=tab.тов left join
dbo.#tab1 as tab1 on tab1.тов=s.ID_TOV
Where s.ID_SKLAD = @ID_SKLAD

select* from #tab
select* from #tab1

drop table #tab
drop table #tab1
30 ноя 11, 22:29    [11686548]     Ответить | Цитировать Сообщить модератору
 Re: Insert into из процедуры!!!  [new]
Klick
Member

Откуда: Стерлитамак - Москва
Сообщений: 1023
Нииичаво невидна :(
Во-первых, ну есть же тег SQL.
Во-вторых, вижу некий огрызок, но не вижу процедуры.
В-третьих, если это таки процедура на кой там drop table #tab (времянки итак умрут вместе с процедурой).
В-четвертых, что иенно ОНА посчитала?
В-пятых, есть же BOL!
В-шестых, раз знаете, что нужен insert into, что мешает тут найти океан примеров?
.....
В-стопятидесятых, давай те весь код, а пока вокруг ночь, почитайте все таки BOL - там есть ВСЁ!
30 ноя 11, 22:44    [11686604]     Ответить | Цитировать Сообщить модератору
 Re: Insert into из процедуры!!!  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31972
SenZhermen
Знаю, что нужно использовать insert into, но все мои попытке тщетны!
Покажите попытку-то с insert into.
30 ноя 11, 22:51    [11686627]     Ответить | Цитировать Сообщить модератору
 Re: Insert into из процедуры!!!  [new]
Klick
Member

Откуда: Стерлитамак - Москва
Сообщений: 1023
В общем случае примерно так:
create table1 (kod int, fio varchar(250))
create table2 (id int, name varchar(250))

insert into table2
select kod,fio from table1
30 ноя 11, 22:54    [11686634]     Ответить | Цитировать Сообщить модератору
 Re: Insert into из процедуры!!!  [new]
SenZhermen
Member

Откуда:
Сообщений: 19
Это весь код)
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
GO


 
ALTER procedure [dbo].[Остаток]
@ID_SKLAD smallint,
@D smalldatetime
as 
select r.ID_TOV as тов , Sum (r.REST) as пр 
into #tab
from dbo.REGISTR as r 
where  CO = 1 and r.DATA_REG =@D
Group by r.ID_TOV

select r.ID_TOV as тов , Sum (r.REST) as рас
into #tab1
from dbo.REGISTR as r 
where  CO = 0 and r.DATA_REG =@D
Group by r.ID_TOV

Select s.ID_TOV, isnull (tab.пр,0) - isnull(tab1.рас,0)+ isnull (s.KOL_KON,0) As A4 
From dbo.SOST_SKL as s left join
dbo.#tab as tab on s.ID_TOV=tab.тов left join
dbo.#tab1 as tab1 on tab1.тов=s.ID_TOV
Where s.ID_SKLAD = @ID_SKLAD

select* from #tab
select* from #tab1

drop table #tab
drop table #tab1

Есть таблица REGISTR, в которой содержаться все движения товаров (data_reg (дата регистрации), id_nakl (id накладной), co (пришло/ушло, 1/0), id_sklad, id_tov (id товара), rest ( кол-во). И таблица SOST_SKL - состояние склада ( id_sklad, id_tov, kol_kon ( кол-во на конец дня), data.
Процедура считает остаток товара за день: берет из таблицы SOST_NAKL значение остатка товара за прошлый день, прибавляет к нему приход за день и отнимает расход за этот же день. Теперь, когда остаток за день посчитан, она должна внести запись в таблицу SOST_NAKL, содержащую id склада, id товара, количество товара (которое процедура считает) и дату.
Учту замечания, бегу читать BOL!

Сообщение было отредактировано: 30 ноя 11, 23:09
30 ноя 11, 22:54    [11686636]     Ответить | Цитировать Сообщить модератору
 Re: Insert into из процедуры!!!  [new]
Baddy
Member

Откуда: Харьков
Сообщений: 174
а если просто insert написать, какой-нибудь вот такой
declare @ID_SKLAD smallint
declare @D smalldatetime

insert SOST_NAKL 
select @ID_SKLAD, t.ID_TOV, isnull(rest0, 0) - isnull(rest1,0) + isnull (s.KOL_KON,0) A4, @D
from SOST_SKL s left join 
(select r.ID_TOV as tov
	, sum(case when co = 0 then REST else 0 end) as REST0
	, sum(case when co = 1 then REST else 0 end) as REST1
from REGISTR
where DATA_REG =@D
Group by ID_TOV) t on s.ID_TOV=t.tov
where s.ID_SKLAD = @ID_SKLAD
?
30 ноя 11, 23:24    [11686707]     Ответить | Цитировать Сообщить модератору
 Re: Insert into из процедуры!!!  [new]
SenZhermen
Member

Откуда:
Сообщений: 19
Baddy, спасибо огромное!!!!!
1 дек 11, 01:14    [11687055]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить