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?
            		
            		 | 
		
| Список | 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 по дате отправления: