Re: insert only if conditions are met?

Поиск
Список
Период
Сортировка
От Philip Hallstrom
Тема Re: insert only if conditions are met?
Дата
Msg-id 20050831140831.Q5678@wolf.pjkh.com
обсуждение исходный текст
Ответ на Re: insert only if conditions are met?  (Ragnar Hafstað <gnari@simnet.is>)
Ответы Re: insert only if conditions are met?  (Henry Ortega <juandelacruz@gmail.com>)
Список pgsql-sql
> On Wed, 2005-08-31 at 12:49 -0400, Henry Ortega wrote:
>> Ok. Here's TABLE A
>>
>> emp            date             hours       type
>> JSMITH       08-15-2005   5             WORK
>> JSMITH       08-15-2005   3             WORK
>> JSMITH       08-25-2005   6             WORK
>>
>> I want to insert the ff:
>> 1.) JSMITH    08-15-2005    8    VAC
>> 2.) DOE        08-16-2005    8    VAC
>>
>> #1 should fail because there is already 8 hours entered as being
>> Worked on 08-15-2005 (same date).
>
> sorry, did not notice the duplicates before my previous reply.
>
> you could do something like
> insert into A select 'JSMITH','08-15-2005',8,'VAC'
>    where
>       8 != (select sum(hours) FROM A
>                    WHERE emp = 'JSMITH'
>                    AND date = '8-15-2005');

Wouldn't that fail if JSMITH had only worked 7 hours on 8-15?  I'm 
guessing he'd still want it to fail since adding that 8 hours ov VAC would 
result in a 15 hour day... so maybe something like?

insert into A select 'JSMITH','08-15-2005',8,'VAC'
WHERE
8 >= 8 + (select sum(hours) FROM A                    WHERE emp = 'JSMITH'                    AND date = '8-15-2005');

?


В списке pgsql-sql по дате отправления:

Предыдущее
От: Ragnar Hafstað
Дата:
Сообщение: Re: insert only if conditions are met?
Следующее
От: Scott Marlowe
Дата:
Сообщение: Re: insert only if conditions are met?