2015-04-30 5 views
-3

У меня есть таблица под названием queue_status, которая имеет три колонкикак обновить таблицу на основе другой таблицы

1. id 
2. queueanme 
3. description 

и еще одну таблицу mail_sent, которая имеет четыре колонки

1.Id 
2.DocNo. 
3.Emailid 
4.Email_sent 

Я хочу, чтобы увеличить mail_sent подсчитывает каждый раз на 1. и до 90, когда queuename содержит значение «test».

благодаря

+4

данные образца и ожидаемые результаты –

+0

Просьба показать взаимосвязь между таблицами, если таковые имеются. Также дайте нам, какие данные вам нужно показать, и что вы ожидаете от результатов. – HKImpact

ответ

0

Я согласен с Sidux что более подробная информация будет полезна здесь. Если вы действительно хотите обновить mail_sent при обновлении queue_status, у вас есть несколько вариантов. Во-первых, вы можете централизовать код, который добавляет/обновляет/удаляет из обновления queue_status. Это даст вам одну область, которая изменяет данные queue_status и даст вам возможность соответственно обновлять mail_sent. Это можно сделать с помощью любого языка/технологии, которые вы используете, или в базе данных, используя хранимую процедуру для обновления queue_status.

Еще один вариант, если вам требуется mail_sent, обновленный на основе queue_status и yo, не имеет никакого контроля над тем, что все может обновить queue_status, - это добавить триггер в queue_status. Правильный триггер может видеть, что добавляется/обновляется/удаляется, и позволяет вам соответствующим образом обновлять mail_sent.

0

Я не уверен, как вы относитесь к таблице mail_sent в таблице queue_status. Вероятно, вы должны предоставить нам еще несколько пробных данных для работы.

Если вы хотите найти количество вхождений в столбце «queueanme» для вставки в вашу таблицу mail_sent, вы можете сделать что-то подобное. Пока мы не получим больше данных, мой ответ - это только предположение о том, что вам нужно.

DECLARE @queue_status TABLE 
(
    id varchar(32), 
    queueanme varchar(max), 
    [description] varchar(200) 
) 

DECLARE @mail_sent TABLE 
(
    Id varchar(32), 
    DocNo int, 
    Emailid varchar(32), 
    Email_sent int 
) 

INSERT INTO @queue_status 
VALUES(REPLACE(NEWID(),'-',''), 'test', 'Record 1'), 
    (REPLACE(NEWID(),'-',''), 'test, Test', 'Record 2'), 
    (REPLACE(NEWID(),'-',''), 'test, test, Test test blah blah blah Test', 'Record 3') 

SELECT *, (LEN(queueanme) - LEN(REPLACE(queueanme, 'test', '')))/LEN('test') 
FROM @queue_status 
Смежные вопросы