Hi ADOdb has a crosstab function that generates the sql for you. This is a utility function, so you do not need to use the rest of ADOdb if you don't want to.
Download: http://php.weblogs.com/adodb Docs: http://phplens.com/lens/adodb/readme.htm#pivot "Opec Kemp" <[EMAIL PROTECTED]> wrote in message [EMAIL PROTECTED]">news:[EMAIL PROTECTED]... > Hi, > > I don't think you can do that with MS SQL, it doesn't support TRASFORN, I > think that's strictly Access syntax. MS SQL 7 and up does have ROLLUP etc > but that's part of the OLAP service, which you will only get if you have > Enterprise edition (read $$$$$$ :)). > > The easiest way to get out of this is to use the CASE statement. For > example: > > CREATE TABLE Pivot > ( Year SMALLINT, > Quarter TINYINT, > Amount DECIMAL(2,1) ) > GO > INSERT INTO Pivot VALUES (1990, 1, 1.1) > INSERT INTO Pivot VALUES (1990, 2, 1.2) > INSERT INTO Pivot VALUES (1990, 3, 1.3) > INSERT INTO Pivot VALUES (1990, 4, 1.4) > INSERT INTO Pivot VALUES (1991, 1, 2.1) > INSERT INTO Pivot VALUES (1991, 2, 2.2) > INSERT INTO Pivot VALUES (1991, 3, 2.3) > INSERT INTO Pivot VALUES (1991, 4, 2.4) > GO > > This is the SELECT statement used to create the rotated results: > > SELECT Year, > SUM(CASE Quarter WHEN 1 THEN Amount ELSE 0 END) AS Q1, > SUM(CASE Quarter WHEN 2 THEN Amount ELSE 0 END) AS Q2, > SUM(CASE Quarter WHEN 3 THEN Amount ELSE 0 END) AS Q3, > SUM(CASE Quarter WHEN 4 THEN Amount ELSE 0 END) AS Q4 > FROM Pivot > GROUP BY Year > GO > > This will give you the result: > > +-------+-----+------+------+-----+ > | Year | Q1 | Q2 | Q3 | Q4 | > +-------+-----+------+------+-----+ > | 1990 | 1.1 | 1.2 | 1.3 | 1.4 | > +-------+-----+------+------+-----+ > | 1991 | 2.1 | 2.2 | 2.3 | 2.4 | > +-------+-----+------+------+-----+ > > This works with MS SQL 7 and 2000. I don't know if 6.5 supports this though > :( > > > > -----Original Message----- > > From: MWCT - Markus Weber [mailto:[EMAIL PROTECTED]] > > Sent: Saturday, 28 December 2002 5:34 AM > > To: [EMAIL PROTECTED] > > Subject: [PHP-DB] Re: crosstab for MS SQL > > > > > > Have you tried the MS Access Syntax ? - e.g.: > > > > TRANSFORM Sum(cube_by_c.netc_bd) AS [Summe von netc_bd] > > SELECT cube_by_c.pthr_product_c AS PROD_C, xref_prod.pthr_desc_x AS [DESC] > > FROM cube_by_c LEFT JOIN xref_prod ON cube_by_c.pthr_product_c = > > xref_prod.pthr_product_c > > WHERE (((cube_by_c.country_iso3_c)="DEU")) > > GROUP BY cube_by_c.pthr_product_c, xref_prod.pthr_desc_x > > PIVOT cube_by_c.yyyymm; > > > > regards, > > markus > > > > > > > > "Sommai Fongnamthip" <[EMAIL PROTECTED]> schrieb im Newsbeitrag > > [EMAIL PROTECTED]">news:[EMAIL PROTECTED]... > > > Hi, > > > MySQL has a method to write Crosstab method but It can't use with MS > > > SQL. Did someone know how to write SQL statement for make > > cross tab with > > > MS SQL 6.5 (both ODBC and TDS connection)? > > > > > > Thank you > > > SF > > > > > > > > > > > -- > > PHP Database Mailing List (http://www.php.net/) > > To unsubscribe, visit: http://www.php.net/unsub.php > > > > > -- PHP Database Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php