On Tue, 8 Feb 2005 11:37:20 +0000, [EMAIL PROTECTED]
<[EMAIL PROTECTED]> wrote:
> On Tuesday 08 February 2005 08:09, Joachim Klöfers wrote:
> > Hi, all
> >
> > I hope somebody can help me.
> <bigsnip />
> 
> >
> > Many thanks in advance
> > Joachim
> 
> That is a very thorny problem. May I observe that you will find things much
> easier, if you add unique primary keys to tables 2 & 3, thus:
> 
> ALTER TABLE <whatever_the_table_is_called> ADD pri_key MEDIUMINT
> AUTO_INCREMENT PRIMARY KEY FIRST;
> 
> You can then left join the second table to itself and get along on the first
> stage of solving the wider problem. Assuming the second table is called
> table2, for instance, you could do something like....
> 
> SELECT t2a.id,SUM(IF(t2a.current='J',t2a.amount1,0)) as 'amount1' FROM table2
> AS t2a LEFT JOIN table2 as t2b ON t2a.pri_key!=t2b.pri_key AND t2a.id=t2b.id
> AND t2a.current=t2b.current GROUP BY a.id;
> (Note, this only solves the 'sum if current' part of the problem, but this is
> certainly one of the harder aspects that needs solving, anyway)
> 
> Even that is probably far more tortuous than it needs to be, but I can't think
> of anything better, at present. Anyway, as I say, I personally don't see how
> you will solve the wider problem without some means of distinguishing unique
> records from one another in tables 2 & 3.
> 
> I'd also ask you to consider whether it was even wise to attempt to solve this
> type of thing with a single query, if it means that anyone trying to modify
> it at a future date is going to have to gaze at it for several hours before
> they could begin work on the alterations :).
> 
> Hope that helps to some extent.
> 
> Dan
> 
Hmm..

What's wrong (for the first part) in simply doing :

SELECT region, SUM(amount1)
FROM t1 , t2
WHERE t1.id=t2.id AND current='J'
GROUP BY region

works for me. 

Now to see about the sum of amount2....

-- 
CozWeb Solutions Ltd
http://www.cozweb.net

--
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:    http://lists.mysql.com/[EMAIL PROTECTED]

Reply via email to