X-Original-To: pgsql-sql-postgresql.org@localhost.postgresql.org Received: from localhost (av.hub.org [200.46.204.144]) by svr1.postgresql.org (Postfix) with ESMTP id 7F6C1D88A3 for ; Wed, 31 Aug 2005 18:10:09 -0300 (ADT) Received: from svr1.postgresql.org ([200.46.204.71]) by localhost (av.hub.org [200.46.204.144]) (amavisd-new, port 10024) with ESMTP id 47673-05 for ; Wed, 31 Aug 2005 21:10:06 +0000 (GMT) Received: from zhonka1.zhonka.net (zhonka1.zhonka.net [66.228.195.5]) by svr1.postgresql.org (Postfix) with ESMTP id 05C56D88A1 for ; Wed, 31 Aug 2005 18:10:04 -0300 (ADT) Received: from wolf.pjkh.com ([66.228.196.74]) by zhonka1.zhonka.net (Post.Office MTA v3.5.3 release 223 ID# 0-58414U4500L450S0V35) with ESMTP id net; Wed, 31 Aug 2005 14:10:06 -0700 Received: from localhost (localhost [127.0.0.1]) by wolf.pjkh.com (Postfix) with ESMTP id 26A72584D; Wed, 31 Aug 2005 14:10:00 -0700 (PDT) Received: from wolf.pjkh.com ([127.0.0.1]) by localhost (wolf.pjkh.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 04821-09; Wed, 31 Aug 2005 14:10:00 -0700 (PDT) Received: by wolf.pjkh.com (Postfix, from userid 1000) id E7714584B; Wed, 31 Aug 2005 14:09:59 -0700 (PDT) Received: from localhost (localhost [127.0.0.1]) by wolf.pjkh.com (Postfix) with ESMTP id E2B405773; Wed, 31 Aug 2005 14:09:59 -0700 (PDT) Date: Wed, 31 Aug 2005 14:09:59 -0700 (PDT) From: Philip Hallstrom To: Ragnar =?ISO-8859-1?Q?Hafsta=F0?= Cc: Henry Ortega , pgsql-sql@postgresql.org Subject: Re: insert only if conditions are met? In-Reply-To: <1125520078.2605.38.camel@localhost.localdomain> Message-ID: <20050831140831.Q5678@wolf.pjkh.com> References: <2bffcc33050831080942f806e1@mail.gmail.com> <20050831152534.GA18934@winnie.fuhr.org> <2bffcc3305083108487fb80cb2@mail.gmail.com> <2bffcc3305083108497ea6dcc6@mail.gmail.com> <1125506698.2605.22.camel@localhost.localdomain> <2bffcc33050831094957be1b4a@mail.gmail.com> <1125520078.2605.38.camel@localhost.localdomain> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed X-Virus-Scanned: by amavisd-new at pjkh.com X-Virus-Scanned: by amavisd-new at hub.org X-Spam-Status: No, hits=-0.054 required=5 tests=[AWL=-0.054] X-Spam-Level: X-Archive-Number: 200508/317 X-Sequence-Number: 22545 > 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'); ?