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

Откуда:
Сообщений: 26
Нужна помощь в написании хранимой процедуры. Есть таблица Материал и представление Списание. В таблице есть поле "Количетсво на складе". В представлении есть поле "Количество". Нужно чтобы хранимка через update таблицы Материалы вычла из "Количества на складе" "Количество" списываемых вещей.
7 дек 16, 21:23    [19978287]     Ответить | Цитировать Сообщить модератору
 Re: создание хранимой процедуры  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
И что именно у вас не получается?
8 дек 16, 01:21    [19978687]     Ответить | Цитировать Сообщить модератору
 Re: создание хранимой процедуры  [new]
aleks2
Guest
Гавриленко Сергей Алексеевич
И что именно у вас не получается?

Вангую... не вычитает!

ЗЫ. Ментальный кодогенератор еще в разработке.
8 дек 16, 06:30    [19978776]     Ответить | Цитировать Сообщить модератору
 Re: создание хранимой процедуры  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 9155
aleks2,

аффтар не читает справку, чего тут ванговать :)
8 дек 16, 10:26    [19979196]     Ответить | Цитировать Сообщить модератору
 Re: создание хранимой процедуры  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6802
судя по активности - началась зимняя сессия :)
8 дек 16, 10:28    [19979216]     Ответить | Цитировать Сообщить модератору
 Re: создание хранимой процедуры  [new]
belya0695
Member

Откуда:
Сообщений: 26
Гавриленко Сергей Алексеевич,
не могу разобраться как обновить больше одной записи
8 дек 16, 12:30    [19979944]     Ответить | Цитировать Сообщить модератору
 Re: создание хранимой процедуры  [new]
belya0695
Member

Откуда:
Сообщений: 26
TaPaK, в точку)
8 дек 16, 12:31    [19979948]     Ответить | Цитировать Сообщить модератору
 Re: создание хранимой процедуры  [new]
buven
Member

Откуда:
Сообщений: 792
belya0695
Гавриленко Сергей Алексеевич,
не могу разобраться как обновить больше одной записи

Приведите код, которым обновляете одну
8 дек 16, 15:27    [19980889]     Ответить | Цитировать Сообщить модератору
 Re: создание хранимой процедуры  [new]
belya0695
Member

Откуда:
Сообщений: 26
buven,

begin
update dbo.материал
set Кол_во_на_складе = Кол_во_на_складе - кол_во_спис_матер
From  спис, материал 
end

обновляется не одна, а все записи в таблице "материал", но от них отнимается только первое значение из представления
8 дек 16, 16:20    [19981191]     Ответить | Цитировать Сообщить модератору
 Re: создание хранимой процедуры  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 9155
belya0695,

какой результат вернет запрос

Select * From  спис, материал 


?
8 дек 16, 17:23    [19981505]     Ответить | Цитировать Сообщить модератору
 Re: создание хранимой процедуры  [new]
belya0695
Member

Откуда:
Сообщений: 26
Владислав Колосов,

вот

К сообщению приложен файл. Размер - 103Kb
8 дек 16, 20:30    [19982080]     Ответить | Цитировать Сообщить модератору
 Re: создание хранимой процедуры  [new]
belya0695
Member

Откуда:
Сообщений: 26
Владислав Колосов,

куда добавить sum чтобы суммировало коли_во_спис_матер для одного материала

К сообщению приложен файл. Размер - 77Kb
8 дек 16, 20:58    [19982143]     Ответить | Цитировать Сообщить модератору
 Re: создание хранимой процедуры  [new]
belya0695
Member

Откуда:
Сообщений: 26
всем спасибо, все получилось. если кому-то нужен код, то вот:

хранимка:

begin
update dbo.материал
set Кол_во_на_складе = Кол_во_на_складе-кол_во_спис_матер
From  спис, материал
where материал.Номер_материала = спис.Номер_материала
end



представление:

SELECT     dbo.материал.Номер_материала, CASE WHEN dbo.нормы_на_списание.Ед_измерения = 'мл' OR
                      dbo.нормы_на_списание.Ед_измерения = 'г' THEN SUM (dbo.состав_акта_на_списание.Кол_во_процедур * dbo.нормы_на_списание.Норма_списания / 1000) 
                      ELSE SUM (dbo.состав_акта_на_списание.Кол_во_процедур * dbo.нормы_на_списание.Норма_списания) END AS кол_во_спис_матер
FROM         dbo.состав_акта_на_списание INNER JOIN
                      dbo.процедура ON dbo.состав_акта_на_списание.ID_процедуры = dbo.процедура.ID_процедуры INNER JOIN
                      dbo.нормы_на_списание ON dbo.процедура.ID_процедуры = dbo.нормы_на_списание.ID_процедуры INNER JOIN
                      dbo.материал ON dbo.нормы_на_списание.Номер_материала = dbo.материал.Номер_материала INNER JOIN
                      dbo.акт_на_списание ON dbo.состав_акта_на_списание.Номер_акта = dbo.акт_на_списание.Номер_акта
WHERE     (dbo.акт_на_списание.Номер_акта =
                          (SELECT     MAX(Номер_акта) AS Expr1
                            FROM          dbo.акт_на_списание AS акт_на_списание_1))
group by dbo.материал.Номер_материала, dbo.нормы_на_списание.Ед_измерения
8 дек 16, 21:19    [19982197]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить