powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Как бы это все реализовать?
13 сообщений из 13, страница 1 из 1
Как бы это все реализовать?
    #32152810
pv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть таблица отгрузки товара:
КодОтгрузки, ДатаОтгрузки, кодТовара, Количество, КодРеализатора, КодОплаты, Цена.
таблица ТипОплаты содержит 2 записи: реализация и оплата.
Есть таблица оплачено:
КодОплаты, КодОтгрузки, Количество, Цена.
К слову таблица отгрузка относится один-ко-многим к таблице оплачено.
Есть тригер на вставку, который следит за тем, что если запись в таблицу отгрузке в поле КодОплаты содержит оплачено, то добавляется и запись в таблицу оплачено.
Так вот необходимо при изменении значения "оплачено" КодОплаты таблицы отгрузка на значение "реализация"(на самом деле поле содержит не эти значения а их коды, сопоставляемые из таблицы типОплаты) проверить если в таблице оплат такая запись 1 раз и количество оплаченное совпадает со взятым количеством( т.е. была ошибка при вводе и она исправляется) то удалить запись из таблицы оплачено.
помогите,как это реализовать?
...
Рейтинг: 0 / 0
Как бы это все реализовать?
    #32152824
pv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Идей ни у кого нет?????
...
Рейтинг: 0 / 0
Как бы это все реализовать?
    #32152945
pv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нужны идеи.
...
Рейтинг: 0 / 0
Как бы это все реализовать?
    #32153085
Фотография АлексейК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
какие идеи ?

еще один триггер на событие update ...
...
Рейтинг: 0 / 0
Как бы это все реализовать?
    #32153163
pv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Написал, но на что-то ругается:

======

CREATE TRIGGER ReceiptsUpd
ON dbo.Receipts
FOR UPDATE
AS

Declare @Idt Int, @s VarChar(50) Set @Idt = @@Identity

IF UPDATE(pay_type) BEGIN
IF(EXISTS(SELECT COUNT(Payments.id) AS S
FROM Payment_type RIGHT OUTER JOIN
UPDATED ON dbo.Payment_type.id = UPDATED.pay_type LEFT OUTER JOIN
dbo.Payments ON UPDATED.id = dbo.Payments.receipt_id
WHERE (dbo.Payment_type.type = 'оплачено')
GROUP BY UPDATED.[count]
HAVING (COUNT(dbo.Payments.id) = 1) AND (SUM(dbo.Payments.[count]) = Receip.[count]))
)
BEGIN
DELETE FROM Payments Where receipt_id in (select id from UPDATED)
END
ELSE
BEGIN

DECLARE @ptype CHAR(20)
SET @ptype = ( SELECT dbo.Payment_type.type FROM UPDATED INNER JOIN
dbo.Payment_type ON UPDATED.pay_type = dbo.Payment_type.id)

IF(@ptype = 'оплачено')BEGIN
INSERT INTO dbo.Payments
([date],
receipt_id,
[count],
price
)
SELECT [date],
[id],
[count],
price
FROM UPDATED
END
END

END

Set @s = 'Select Identity(Int, ' + Cast(@Idt As VarChar(10)) +' ,1) As idt Into #Tmp'
Execute(@s)
...
Рейтинг: 0 / 0
Как бы это все реализовать?
    #32153174
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что то надо поправить
...
Рейтинг: 0 / 0
Как бы это все реализовать?
    #32153178
pv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Лох Позорный
не подскажешь, что?
...
Рейтинг: 0 / 0
Как бы это все реализовать?
    #32153180
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Уважаемый pv!\r
\r
Тебя Glory в топике /topic/30875 уже спрашивал: "...Кстати ответьте таки мне на вопрос, что за таблица UPDATED у вас фигурирует в запросах ? А?"\r
Если бы ответил на его вопрос, то понял почему "на что-то ругается"
...
Рейтинг: 0 / 0
Как бы это все реализовать?
    #32153186
pv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
UPDATED - таблица с обновленными записями. ее как раз токи тригером я и пытаюсь обработать, но вот почему то ругается, на срабатывании этого тригера, грит Invalid object name UPDATED, но ведь при проверке синтаксиса Enterprise Maneger об ошибках ничего не сообщил.
...
Рейтинг: 0 / 0
Как бы это все реализовать?
    #32153193
pv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В смысле, это стандартная таблица для использования в тригерах, как и INSERTED и DELETED.
...
Рейтинг: 0 / 0
Как бы это все реализовать?
    #32153195
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
из BOL
Код: plaintext
1.
2.
3.
deleted and inserted are logical (conceptual) tables. They are structurally similar to the table on which the trigger is defined, that is, the table on which the user action is attempted, and hold the old values or new values of the rows that may be changed by the user action. For example, to retrieve all values in the deleted table, use: 
SELECT *
FROM deleted


А теперь задача: найти слово "Updated" хотя бы 1 раз.
...
Рейтинг: 0 / 0
Как бы это все реализовать?
    #32153197
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В смысле, это стандартная таблица для использования в тригерах, как и INSERTED и DELETED.

Ну так если по вашим словам это стандартная таблица, то почему же "сервер ругается". Не поделитесь источником, в которм вы нашли информацию об этой таблице ?

ЗЫ
А EM проверяет именно синтаксис, а не логику.
...
Рейтинг: 0 / 0
Как бы это все реализовать?
    #32153206
pv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот же я дурень, спасибочки, сейчас попробую.
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Как бы это все реализовать?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]