I have a table countrystats defined as

CREATE TABLE IF NOT EXISTS `countrystats` (
  `proj` char(6) NOT NULL default '',
  `country` char(50) NOT NULL default '',
  `score` double default NULL,
  `nusers` int(11) default NULL,
  `RAC` double default NULL,
  `last_update` double default NULL,
  PRIMARY KEY  (`proj`,`country`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

To get the data I can do the following

select 'rsi',country,sum(metric1) as total,count(*),sum(metric2) from
user_table group by country;

This works fine, but then I tried  to populate the table with

INSERT INTO countrystats (select 'rsi', country,sum(metric1) as
total,count(*) as count,sum(metric2) as sumrac,0 from user_table group by
country) on duplicate key update last_update=total -
score,score=total,nusers=count,RAC=sumrac;

which gives me

ERROR 1054 (42S22): Unknown column 'total' in 'field list'

now the insert on it's own without the on duplicate works just fine.. so why
does the update not like the 'named' column??

Any ideas? Can it be done in a single statement?

Reply via email to