Re: insert only if conditions are met? - Mailing list pgsql-sql

From Philip Hallstrom
Subject Re: insert only if conditions are met?
Date
Msg-id 20050831140831.Q5678@wolf.pjkh.com
Whole thread Raw
In response to Re: insert only if conditions are met?  (Ragnar Hafstað <gnari@simnet.is>)
Responses Re: insert only if conditions are met?
List 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 by date:

Previous
From: Ragnar Hafstað
Date:
Subject: Re: insert only if conditions are met?
Next
From: Scott Marlowe
Date:
Subject: Re: insert only if conditions are met?