From: Peter Brawley Date: April 8 2005 6:28pm Subject: Re: Does such a JOIN exist that can create a pivot table? List-Archive: http://lists.mysql.com/mysql/182362 Message-Id: <4256CD64.5020307@earthlink.net> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=======AVGMAIL-4256CD641C70=======" --=======AVGMAIL-4256CD641C70======= Content-Type: multipart/alternative; boundary=------------050106000801040408030109 --------------050106000801040408030109 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Raymond, Can you bend one or more of the pivot table examples at http://www.artfulsoftware.com/queries.php to your requirement? PB ----- Jacob, Raymond A Jr wrote: >Question: I frequently would like to summarize the results of my query in heiarchical layout also >known as a Pivot table. >Here is an example of what I would like output. NULL will be printed as a space >when output. > >sum of broken| source of | qty |reseller of |qty |customer with |qty by > bolts |broken bolts|regional |broken bolts|reseller |broken bolts |customer >----------------------------------------------------------------------------- > 100 | NULL |NULL |NULL | NULL |NULL |NULL >(100/NULL) | US | 75 |NULL | NULL |NULL |NULL >(100/NULL) | (US/NULL) |(75/NULL) |ACME | 35 |NULL |NULL >(100/NULL) | (US/NULL) |(75/NULL) |(ACME/NULL) |(35/NULL)|Barney Rubble |20 >(100/NULL) | US | 75 |NULL | NULL |NULL |NULL >(100/NULL) | (US/NULL) |(75/NULL) |ACME | 35 |NULL |NULL >(100/NULL) | (US/NULL) |(75/NULL) |(ACME/NULL) |(35/NULL)|Betty Rubble |5 >(100/NULL) | US | 75 |NULL | NULL |NULL |NULL >(100/NULL) | (US/NULL) |(75/NULL) |ABLE | 25 |NULL |NULL >(100/NULL) | (US/NULL) |(75/NULL) |(ABLE/NULL) |(25/NULL)|Sponge Bobble |20 >(100/NULL) | MEXICO | 15 |NULL | NULL |NULL |NULL >(100/NULL) | (MEX/NULL) |(15/NULL) |TIPPY | 12 |NULL |NULL >(100/NULL) | (MEX/NULL) |(15/NULL) |(ACME/NULL) |(12/NULL)|Juan Pepe |7 > > >100 * * * * * * >* US 75 * * * * >* * * ACME 35 * * >* * * * * Barney Ruble 20 > >Where * represents NULL or a Primary Key. > >How does one build a pivot table? >from tables such as: > >factory_parts table > ::{ >part no, >plant, >qty_manufactured >plant name >} >reseller_parts table > ::{ >part no >plant >qty received >cost >reseller name >reseller id > >} >customer_parts table > ::{ >reseller id >part no >plant >qty sold >qty recvd >customer id >customer name >} > >Ooops now the light bulb comes on >I would do: > select factory_parts.plant name, > reseller_parts.reseller_name > customer_parts.customer_name, > customer_parts.qty_recvd > from factory_parts,reseller_parts,customer_parts > where customer_parts.part_no == 'broken_bolt' AND > ( customer_parts.part_no == reseller_parts.part.no AND > customer_parts.part_no == factory_parts.part.no ) > >Now the question becomes how does one construct the aggregate columns >representing the sum of bolts produced by the company,made at the plant, >shipped to the reseller and sold to the customer, >then join those aggregate columns? Any suggestions? > >Thank you, >Raymond > > > > > > >------------------------------------------------------------------------ > >No virus found in this incoming message. >Checked by AVG Anti-Virus. >Version: 7.0.308 / Virus Database: 266.9.5 - Release Date: 4/7/2005 > > --------------050106000801040408030109 Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit
--------------050106000801040408030109-- --=======AVGMAIL-4256CD641C70======= Content-Type: text/plain; x-avg=cert; charset=us-ascii Content-Transfer-Encoding: quoted-printable Content-Disposition: inline Content-Description: "AVG certification" No virus found in this outgoing message. Checked by AVG Anti-Virus. Version: 7.0.308 / Virus Database: 266.9.5 - Release Date: 4/7/2005 --=======AVGMAIL-4256CD641C70=======--Question: I frequently would like to summarize the results of my query in heiarchical layout also known as a Pivot table. Here is an example of what I would like output. NULL will be printed as a space when output. sum of broken| source of | qty |reseller of |qty |customer with |qty by bolts |broken bolts|regional |broken bolts|reseller |broken bolts |customer ----------------------------------------------------------------------------- 100 | NULL |NULL |NULL | NULL |NULL |NULL (100/NULL) | US | 75 |NULL | NULL |NULL |NULL (100/NULL) | (US/NULL) |(75/NULL) |ACME | 35 |NULL |NULL (100/NULL) | (US/NULL) |(75/NULL) |(ACME/NULL) |(35/NULL)|Barney Rubble |20 (100/NULL) | US | 75 |NULL | NULL |NULL |NULL (100/NULL) | (US/NULL) |(75/NULL) |ACME | 35 |NULL |NULL (100/NULL) | (US/NULL) |(75/NULL) |(ACME/NULL) |(35/NULL)|Betty Rubble |5 (100/NULL) | US | 75 |NULL | NULL |NULL |NULL (100/NULL) | (US/NULL) |(75/NULL) |ABLE | 25 |NULL |NULL (100/NULL) | (US/NULL) |(75/NULL) |(ABLE/NULL) |(25/NULL)|Sponge Bobble |20 (100/NULL) | MEXICO | 15 |NULL | NULL |NULL |NULL (100/NULL) | (MEX/NULL) |(15/NULL) |TIPPY | 12 |NULL |NULL (100/NULL) | (MEX/NULL) |(15/NULL) |(ACME/NULL) |(12/NULL)|Juan Pepe |7 100 * * * * * * * US 75 * * * * * * * ACME 35 * * * * * * * Barney Ruble 20 Where * represents NULL or a Primary Key. How does one build a pivot table? from tables such as: factory_parts table ::{ part no, plant, qty_manufactured plant name } reseller_parts table ::{ part no plant qty received cost reseller name reseller id } customer_parts table ::{ reseller id part no plant qty sold qty recvd customer id customer name } Ooops now the light bulb comes on I would do: select factory_parts.plant name, reseller_parts.reseller_name customer_parts.customer_name, customer_parts.qty_recvd from factory_parts,reseller_parts,customer_parts where customer_parts.part_no == 'broken_bolt' AND ( customer_parts.part_no == reseller_parts.part.no AND customer_parts.part_no == factory_parts.part.no ) Now the question becomes how does one construct the aggregate columns representing the sum of bolts produced by the company,made at the plant, shipped to the reseller and sold to the customer, then join those aggregate columns? Any suggestions? Thank you, Raymond
No virus found in this incoming message. Checked by AVG Anti-Virus. Version: 7.0.308 / Virus Database: 266.9.5 - Release Date: 4/7/2005