| Author |
Topic |
|
Sitka
Aged Yak Warrior
571 Posts |
Posted - 2004-11-24 : 16:10:44
|
| [code]CREATE TABLE parts2(IDxxx int IDENTITY(1,1) NOT NULL,part varchar(35),descrip varchar(255),vendor varchar(6))INSERT INTO parts2 (part, descrip, vendor)VALUES(apart,adescript, avendor)INSERT INTO parts2 (part, descrip, vendor)VALUES(apart,adescript,bvend)INSERT INTO parts2 (part, descrip, vendor)VALUES(cpart,cdescript,avend)INSERT INTO parts2 (part, descrip, vendor)VALUES(dpart,ddescript,avend)INSERT INTO parts2 (part, descrip, vendor)VALUES(dpart,ddescript,dvend)INSERT INTO parts2 (part, descrip, vendor)VALUES(dpart,ddescript,evend)Desired resultPART DESCRIP VEND1 VEND2 VEND3apart adescript avend bvend NULLcpart cdescript avend NULL NULLdpart ddescript avend dvend evend[/code]I wish someone would start an Official XML Rant Thread. |
|
|
ehorn
Master Smack Fu Yak Hacker
1632 Posts |
Posted - 2004-11-24 : 16:25:06
|
| [code]select part, descrip, max(case when vendor_id = 'a' then vendor else null end) VEND1, max(case when vendor_id IN ('b','d') then vendor else null end) VEND2, max(case when vendor_id = 'e' then vendor else null end) VEND3from( select left(part,1) part_id,part, descrip, left(vendor,1) vendor_id, vendor from parts2) dgroup by part,descrip[/code] |
 |
|
|
Sitka
Aged Yak Warrior
571 Posts |
Posted - 2004-11-24 : 16:45:32
|
Thanks ehorn, I gave bad sample dataVendor can be any varchar(6), new ones frequently added.Also part and descript can be anything as wellINSERT INTO parts2 (part, descrip, vendor)VALUES('apart','adescript','jones')INSERT INTO parts2 (part, descrip, vendor)VALUES('apart','adescript', 'jill')INSERT INTO parts2 (part, descrip, vendor)VALUES('cpart','cdescript','jones')INSERT INTO parts2 (part, descrip, vendor)VALUES('dpart','ddescript','jones')INSERT INTO parts2 (part, descrip, vendor)VALUES('dpart','ddescript','jane')INSERT INTO parts2 (part, descrip, vendor)VALUES('dpart','ddescript','ed')Desired resultPART DESCRIP VEND1 VEND2 VEND3apart adescript jones jill NULLcpart cdescript jones NULL NULLdpart ddescript jones jane edI wish someone would start an Official XML Rant Thread. |
 |
|
|
ehorn
Master Smack Fu Yak Hacker
1632 Posts |
Posted - 2004-11-24 : 17:22:48
|
| [code]select part, descrip, max(case when vend_id = 1 then vendor else null end) VEND1, max(case when vend_id = 2 then vendor else null end) VEND2, max(case when vend_id = 3 then vendor else null end) VEND3from( select top 100 percent IDxxx, part, descrip, vendor, (select count(1)+1 from parts2 p2 where p2.part = p.part and p2.IDxxx < p.IDxxx) as vend_id from parts2 p order by IDxxx, part) dgroup by part,descrip[/code] |
 |
|
|
Sitka
Aged Yak Warrior
571 Posts |
Posted - 2004-11-24 : 18:28:47
|
| thanks again. I have to try tomorrow and see if that fits what I need to get out of the real data. I am/was so stuck, the right approach to this seems to have become a victim of a destroyed part of the brain, don't know what to call it either, can't wait!I wish someone would start an Official XML Rant Thread. |
 |
|
|
Sitka
Aged Yak Warrior
571 Posts |
Posted - 2004-11-26 : 09:12:26
|
Thanks ehorn it worked good against the real data. I wish someone would start an Official XML Rant Thread. |
 |
|
|
|
|
|