|
|
|
Как бы это все реализовать?
|
|||
|---|---|---|---|
|
#18+
Есть таблица отгрузки товара: КодОтгрузки, ДатаОтгрузки, кодТовара, Количество, КодРеализатора, КодОплаты, Цена. таблица ТипОплаты содержит 2 записи: реализация и оплата. Есть таблица оплачено: КодОплаты, КодОтгрузки, Количество, Цена. К слову таблица отгрузка относится один-ко-многим к таблице оплачено. Есть тригер на вставку, который следит за тем, что если запись в таблицу отгрузке в поле КодОплаты содержит оплачено, то добавляется и запись в таблицу оплачено. Так вот необходимо при изменении значения "оплачено" КодОплаты таблицы отгрузка на значение "реализация"(на самом деле поле содержит не эти значения а их коды, сопоставляемые из таблицы типОплаты) проверить если в таблице оплат такая запись 1 раз и количество оплаченное совпадает со взятым количеством( т.е. была ошибка при вводе и она исправляется) то удалить запись из таблицы оплачено. помогите,как это реализовать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.05.2003, 10:38 |
|
||
|
Как бы это все реализовать?
|
|||
|---|---|---|---|
|
#18+
Идей ни у кого нет????? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.05.2003, 12:33 |
|
||
|
Как бы это все реализовать?
|
|||
|---|---|---|---|
|
#18+
Нужны идеи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2003, 06:50 |
|
||
|
Как бы это все реализовать?
|
|||
|---|---|---|---|
|
#18+
какие идеи ? еще один триггер на событие update ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2003, 10:56 |
|
||
|
Как бы это все реализовать?
|
|||
|---|---|---|---|
|
#18+
Написал, но на что-то ругается: ====== 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) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2003, 12:01 |
|
||
|
Как бы это все реализовать?
|
|||
|---|---|---|---|
|
#18+
Что то надо поправить ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2003, 12:05 |
|
||
|
Как бы это все реализовать?
|
|||
|---|---|---|---|
|
#18+
2 Лох Позорный не подскажешь, что? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2003, 12:09 |
|
||
|
Как бы это все реализовать?
|
|||
|---|---|---|---|
|
#18+
Уважаемый pv!\r \r Тебя Glory в топике /topic/30875 уже спрашивал: "...Кстати ответьте таки мне на вопрос, что за таблица UPDATED у вас фигурирует в запросах ? А?"\r Если бы ответил на его вопрос, то понял почему "на что-то ругается" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2003, 12:10 |
|
||
|
Как бы это все реализовать?
|
|||
|---|---|---|---|
|
#18+
UPDATED - таблица с обновленными записями. ее как раз токи тригером я и пытаюсь обработать, но вот почему то ругается, на срабатывании этого тригера, грит Invalid object name UPDATED, но ведь при проверке синтаксиса Enterprise Maneger об ошибках ничего не сообщил. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2003, 12:17 |
|
||
|
Как бы это все реализовать?
|
|||
|---|---|---|---|
|
#18+
В смысле, это стандартная таблица для использования в тригерах, как и INSERTED и DELETED. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2003, 12:25 |
|
||
|
Как бы это все реализовать?
|
|||
|---|---|---|---|
|
#18+
из BOL Код: plaintext 1. 2. 3. А теперь задача: найти слово "Updated" хотя бы 1 раз. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2003, 12:29 |
|
||
|
Как бы это все реализовать?
|
|||
|---|---|---|---|
|
#18+
В смысле, это стандартная таблица для использования в тригерах, как и INSERTED и DELETED. Ну так если по вашим словам это стандартная таблица, то почему же "сервер ругается". Не поделитесь источником, в которм вы нашли информацию об этой таблице ? ЗЫ А EM проверяет именно синтаксис, а не логику. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2003, 12:31 |
|
||
|
|

start [/forum/topic.php?fid=45&msg=32153174&tid=1681636]: |
0ms |
get settings: |
9ms |
get forum list: |
21ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
44ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
56ms |
get tp. blocked users: |
2ms |
| others: | 222ms |
| total: | 370ms |

| 0 / 0 |
