Добро пожаловать в форум, Guest >> Войти | Регистрация | Поиск | Правила | | В избранное | Подписаться | ||
Все форумы / Microsoft SQL Server |
![]() ![]() |
belya0695 Member Откуда: Сообщений: 26 |
Нужна помощь в написании хранимой процедуры. Есть таблица Материал и представление Списание. В таблице есть поле "Количетсво на складе". В представлении есть поле "Количество". Нужно чтобы хранимка через update таблицы Материалы вычла из "Количества на складе" "Количество" списываемых вещей. |
7 дек 16, 21:23 [19978287] Ответить | Цитировать Сообщить модератору |
Гавриленко Сергей Алексеевич Member Откуда: Moscow Сообщений: 37143 |
И что именно у вас не получается? |
8 дек 16, 01:21 [19978687] Ответить | Цитировать Сообщить модератору |
aleks2
Guest |
Вангую... не вычитает! ЗЫ. Ментальный кодогенератор еще в разработке. |
||
8 дек 16, 06:30 [19978776] Ответить | Цитировать Сообщить модератору |
Владислав Колосов Member Откуда: Сообщений: 8316 |
aleks2, аффтар не читает справку, чего тут ванговать :) |
8 дек 16, 10:26 [19979196] Ответить | Цитировать Сообщить модератору |
TaPaK Member Откуда: Kiev Сообщений: 6801 |
судя по активности - началась зимняя сессия :) |
8 дек 16, 10:28 [19979216] Ответить | Цитировать Сообщить модератору |
belya0695 Member Откуда: Сообщений: 26 |
Гавриленко Сергей Алексеевич, не могу разобраться как обновить больше одной записи |
8 дек 16, 12:30 [19979944] Ответить | Цитировать Сообщить модератору |
belya0695 Member Откуда: Сообщений: 26 |
TaPaK, в точку) |
8 дек 16, 12:31 [19979948] Ответить | Цитировать Сообщить модератору |
buven Member Откуда: Сообщений: 792 |
Приведите код, которым обновляете одну |
||
8 дек 16, 15:27 [19980889] Ответить | Цитировать Сообщить модератору |
belya0695 Member Откуда: Сообщений: 26 |
buven,begin update dbo.материал set Кол_во_на_складе = Кол_во_на_складе - кол_во_спис_матер From спис, материал end обновляется не одна, а все записи в таблице "материал", но от них отнимается только первое значение из представления |
8 дек 16, 16:20 [19981191] Ответить | Цитировать Сообщить модератору |
Владислав Колосов Member Откуда: Сообщений: 8316 |
belya0695, какой результат вернет запрос Select * From спис, материал ? |
8 дек 16, 17:23 [19981505] Ответить | Цитировать Сообщить модератору |
belya0695 Member Откуда: Сообщений: 26 |
Владислав Колосов, вот К сообщению приложен файл. Размер - 103Kb |
8 дек 16, 20:30 [19982080] Ответить | Цитировать Сообщить модератору |
belya0695 Member Откуда: Сообщений: 26 |
Владислав Колосов, куда добавить sum чтобы суммировало коли_во_спис_матер для одного материала К сообщению приложен файл. Размер - 77Kb |
8 дек 16, 20:58 [19982143] Ответить | Цитировать Сообщить модератору |
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 | ![]() |