>>>> 2012/11/19 04:49 -0800, Jan Steinman >>>>
> SELECT main.code
> , IF(iconstandardrel.icon = 4,1,0) AS 'internationalt_produkt.eps'
> , IF(iconstandardrel.icon = 3,1,0) AS 'god_vaerdi.eps'
> , IF(iconstandardrel.icon = 2,1,0) AS 'for_miljoeets_skyld.eps'
> , IF(iconstandardrel.icon = 1,1,0) AS 'ergonomisk_produkt.eps'
> , IF(iconstandardrel.icon = 6,1,0) AS 'saml_selv.eps'
> , IF(iconstandardrel.icon = 12,1,0) AS 'brandfarlig.eps'
> FROM iconstandardrel
> JOIN main ON main.code = iconstandardrel.code
> JOIN iconstandard ON iconstandard.id = iconstandardrel.icon
> ORDER BY iconstandardrel.code;
> 
> Which produces results like:
> 
> 101577, 1, 0, 0, 0, 0, 0
> 101679, 0, 1, 0, 0, 0, 0
> 101679, 1, 0, 0, 0, 0, 0
> 101681, 1, 0, 0, 0, 0, 0
> 101748, 0, 1, 0, 0, 0, 0
> 101748, 1, 0, 0, 0, 0, 0
> 
> But I would like to have One line per code:
> 
> 101577, 1, 0, 0, 0, 0, 0
> 101679, 1, 1, 0, 0, 0, 0
> 101681, 1, 0, 0, 0, 0, 0
> 101748, 1, 1, 0, 0, 0, 0
> 
> Is it possible to achieve this in pure SQL ?

I think you need GROUP BY main.code.
<<<<<<<<
Yes, with fit aggregate functions around the IFs: MAX would work, and also 
BIT_OR. I hav seen no aggregate function that corresponds to OR, the most 
natural in your case.


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

Reply via email to