Please start any new threads on our new
site at https://forums.sqlteam.com. We've got lots of great SQL Server
experts to answer whatever question you can come up with.
| Author |
Topic |
|
Amjath
Yak Posting Veteran
66 Posts |
Posted - 2007-08-28 : 04:11:10
|
| Hi All,I'm having this many rows(around 25 columns am only showing some 3), but in the output i want only 2 rows, how can i do that. 1 6_00 SB3215-02 1 6_01 00301A39A041 1 6_02 Successful 1 6_03 Successful 1 6_04 Successful 1 6_05 00301A39A042 1 8_00 Pass 1 8_02 00301A39A041 1 8_03 00904BC1A1D6 1 8_32 5.18 1 8_33 5.19 1 8_34 5.24 1 8_36 5.40 1 8_37 5.39 1 8_38 5.32 1 8_40 -49 1 8_41 -56 1 8_42 -53 1 8_44 -62 1 8_45 -63 1 8_46 -60 2 6_00 SB3216-02 2 6_01 00301A39A041 2 6_02 Successful 2 6_03 Successful 2 6_04 Successful 2 6_05 00301A39A042 2 8_00 Pass 2 8_02 00301A39A041 2 8_03 00904BC1A1D6 2 8_32 5.68 2 8_33 6.19 2 8_34 9.24 2 8_36 5.40 2 8_37 5.89 2 8_38 5.32 2 8_40 -49 2 8_41 -56 2 8_42 -53 2 8_44 -82 2 8_45 -63 2 8_46 -69 Output like this----------------1 6_00 SB3215-02 6_01 00301A39A041 6_02 Successful 6_03 Successful 6_04 Successful 6_05 00301A39A042 8_00 Pass 8_02 00301A39A041 8_03 00904BC1A1D6 8_32 5.18 8_33 5.19 8_34 5.24 ....................like this please help me, how can i do thiswith RegardsAmjath |
|
|
spirit1
Cybernetic Yak Master
11752 Posts |
Posted - 2007-08-28 : 05:20:40
|
| search for cross tabs or pivot here._______________________________________________Causing trouble since 1980blog: http://weblogs.sqlteam.com/mladenp |
 |
|
|
Amjath
Yak Posting Veteran
66 Posts |
Posted - 2007-08-28 : 05:31:32
|
| Thanks for your information.how cross tab will solve my problem....plz explain meWith RegardsAmjath |
 |
|
|
madhivanan
Premature Yak Congratulator
22864 Posts |
Posted - 2007-08-28 : 05:36:11
|
| Where do you wanto to show data?MadhivananFailing to plan is Planning to fail |
 |
|
|
Amjath
Yak Posting Veteran
66 Posts |
Posted - 2007-08-28 : 05:39:20
|
| Hi madhivanan,In DataGridView(grid in c#).With RegardsAmjath |
 |
|
|
spirit1
Cybernetic Yak Master
11752 Posts |
|
|
Amjath
Yak Posting Veteran
66 Posts |
Posted - 2007-08-28 : 05:48:24
|
| here i got some error like thisIncorrect syntax near the keyword 'Pivot'.when i click on this it will show here.create table #temp (Pivot varchar(100))with RegardsAmjath |
 |
|
|
madhivanan
Premature Yak Congratulator
22864 Posts |
Posted - 2007-08-28 : 05:57:41
|
| I think Pivot is the keyword in sql server 2005. Try using pivotsMadhivananFailing to plan is Planning to fail |
 |
|
|
ser_eng
Starting Member
3 Posts |
Posted - 2007-10-16 : 04:04:23
|
| Hi,I'm having problem in converting the data from rows into column and in dire of your help.Example:currently i'm having a table Item Qty Mth---- ----- -----A 10 2006-1A 40 2006-3B 20 2006-2C 30 2006-3C 50 2006-2How can I change it to the output I want?Output:Item Jan Feb Mar ---- ----- ----- -----A 10 - 40B - 20 -C - 50 30Please advise and sorry for the alignment. Thanks.Cheers,Serene |
 |
|
|
SwePeso
Patron Saint of Lost Yaks
30421 Posts |
Posted - 2007-10-16 : 04:20:50
|
[code]DECLARE @Sample TABLE (Item CHAR(1), Qty TINYINT, Mth CHAR(6))INSERT @SampleSELECT 'A', 10, '2006-1' UNION ALLSELECT 'A', 40, '2006-3' UNION ALLSELECT 'B', 20, '2006-2' UNION ALLSELECT 'C', 30, '2006-3' UNION ALLSELECT 'C', 50, '2006-2'SELECT Item, LEFT(Mth, 4) AS [Year], SUM(CASE WHEN RIGHT(Mth, 2) = '-1' THEN Qty ELSE 0 END) AS [January], SUM(CASE WHEN RIGHT(Mth, 2) = '-2' THEN Qty ELSE 0 END) AS [Fabruary], SUM(CASE WHEN RIGHT(Mth, 2) = '-3' THEN Qty ELSE 0 END) AS [March], SUM(CASE WHEN RIGHT(Mth, 2) = '-4' THEN Qty ELSE 0 END) AS [April], SUM(CASE WHEN RIGHT(Mth, 2) = '-5' THEN Qty ELSE 0 END) AS [May], SUM(CASE WHEN RIGHT(Mth, 2) = '-6' THEN Qty ELSE 0 END) AS [June], SUM(CASE WHEN RIGHT(Mth, 2) = '-7' THEN Qty ELSE 0 END) AS [July], SUM(CASE WHEN RIGHT(Mth, 2) = '-8' THEN Qty ELSE 0 END) AS [August], SUM(CASE WHEN RIGHT(Mth, 2) = '-9' THEN Qty ELSE 0 END) AS [September], SUM(CASE WHEN RIGHT(Mth, 3) = '-10' THEN Qty ELSE 0 END) AS [October], SUM(CASE WHEN RIGHT(Mth, 3) = '-11' THEN Qty ELSE 0 END) AS [November], SUM(CASE WHEN RIGHT(Mth, 3) = '-12' THEN Qty ELSE 0 END) AS [December]FROM @SampleGROUP BY Item, LEFT(Mth, 4)ORDER BY Item, LEFT(Mth, 4)[/code] E 12°55'05.25"N 56°04'39.16" |
 |
|
|
SwePeso
Patron Saint of Lost Yaks
30421 Posts |
Posted - 2007-10-16 : 04:21:26
|
[code]SELECT Item, SUM(CASE WHEN RIGHT(Mth, 2) = '-1' THEN Qty ELSE 0 END) AS [January], SUM(CASE WHEN RIGHT(Mth, 2) = '-2' THEN Qty ELSE 0 END) AS [Fabruary], SUM(CASE WHEN RIGHT(Mth, 2) = '-3' THEN Qty ELSE 0 END) AS [March], SUM(CASE WHEN RIGHT(Mth, 2) = '-4' THEN Qty ELSE 0 END) AS [April], SUM(CASE WHEN RIGHT(Mth, 2) = '-5' THEN Qty ELSE 0 END) AS [May], SUM(CASE WHEN RIGHT(Mth, 2) = '-6' THEN Qty ELSE 0 END) AS [June], SUM(CASE WHEN RIGHT(Mth, 2) = '-7' THEN Qty ELSE 0 END) AS [July], SUM(CASE WHEN RIGHT(Mth, 2) = '-8' THEN Qty ELSE 0 END) AS [August], SUM(CASE WHEN RIGHT(Mth, 2) = '-9' THEN Qty ELSE 0 END) AS [September], SUM(CASE WHEN RIGHT(Mth, 3) = '-10' THEN Qty ELSE 0 END) AS [October], SUM(CASE WHEN RIGHT(Mth, 3) = '-11' THEN Qty ELSE 0 END) AS [November], SUM(CASE WHEN RIGHT(Mth, 3) = '-12' THEN Qty ELSE 0 END) AS [December]FROM @SampleWHERE Mth LIKE '2006%'GROUP BY ItemORDER BY Item[/code] E 12°55'05.25"N 56°04'39.16" |
 |
|
|
Kristen
Test
22859 Posts |
Posted - 2007-10-16 : 04:24:07
|
| Is 10 - 40 just the Min and Max values, or must the intervening values be present?Kristen |
 |
|
|
Kristen
Test
22859 Posts |
Posted - 2007-10-16 : 04:28:40
|
| Blinking formatting [lack of]. I didn't see the Month columns, thought it was a "Display the range" thingie.There ought to be a Test to pass before being allowed to drive ... |
 |
|
|
madhivanan
Premature Yak Congratulator
22864 Posts |
Posted - 2007-10-16 : 04:32:31
|
I prefer working on dates  SELECT Item, year(mth)AS [Year], SUM(CASE WHEN month(mth)= '1' THEN Qty ELSE 0 END) AS [January], SUM(CASE WHEN month(mth)= '2' THEN Qty ELSE 0 END) AS [Fabruary], SUM(CASE WHEN month(mth)= '3' THEN Qty ELSE 0 END) AS [March], SUM(CASE WHEN month(mth)= '4' THEN Qty ELSE 0 END) AS [April], SUM(CASE WHEN month(mth)= '5' THEN Qty ELSE 0 END) AS [May], SUM(CASE WHEN month(mth)= '6' THEN Qty ELSE 0 END) AS [June], SUM(CASE WHEN month(mth)= '7' THEN Qty ELSE 0 END) AS [July], SUM(CASE WHEN month(mth)= '8' THEN Qty ELSE 0 END) AS [August], SUM(CASE WHEN month(mth)= '9' THEN Qty ELSE 0 END) AS [September], SUM(CASE WHEN month(mth) = '10' THEN Qty ELSE 0 END) AS [October], SUM(CASE WHEN month(mth) = '11' THEN Qty ELSE 0 END) AS [November], SUM(CASE WHEN month(mth) = '12' THEN Qty ELSE 0 END) AS [December]FROM (select item, qty,cast(mth+'-01' as datetime) as mth from @Sample) as TGROUP BY Item, year(mth)ORDER BY Item, year(mth) MadhivananFailing to plan is Planning to fail |
 |
|
|
SwePeso
Patron Saint of Lost Yaks
30421 Posts |
Posted - 2007-10-16 : 04:46:02
|
I prefer PIVOTSELECT p.Item, p.[1] AS [January], p.[2] AS [February], p.[3] AS [March], p.[4] AS [April], p.[5] AS [May], p.[6] AS [June], p.[7] AS [July], p. AS [August], p.[9] AS [September], p.[10] AS [October], p.[11] AS [November], p.[12] AS [December]FROM ( SELECT Item, Qty, PARSENAME(REPLACE(Mth, '-', '.'), 1) AS theMonth FROM @Sample WHERE Mth LIKE '2006%' ) AS yPIVOT ( SUM(y.Qty) FOR y.theMonth IN ([1], [2], [3], [4], [5], [6], [7], , [9], [10], [11], [12]) ) AS p E 12°55'05.25"N 56°04'39.16" |
 |
|
|
madhivanan
Premature Yak Congratulator
22864 Posts |
Posted - 2007-10-16 : 04:52:28
|
Yes. Provided OP uses SQL Server 2005 MadhivananFailing to plan is Planning to fail |
 |
|
|
ser_eng
Starting Member
3 Posts |
Posted - 2007-10-16 : 06:07:20
|
quote: Originally posted by Peso
SELECT Item, SUM(CASE WHEN RIGHT(Mth, 2) = '-1' THEN Qty ELSE 0 END) AS [January], SUM(CASE WHEN RIGHT(Mth, 2) = '-2' THEN Qty ELSE 0 END) AS [Fabruary], SUM(CASE WHEN RIGHT(Mth, 2) = '-3' THEN Qty ELSE 0 END) AS [March], SUM(CASE WHEN RIGHT(Mth, 2) = '-4' THEN Qty ELSE 0 END) AS [April], SUM(CASE WHEN RIGHT(Mth, 2) = '-5' THEN Qty ELSE 0 END) AS [May], SUM(CASE WHEN RIGHT(Mth, 2) = '-6' THEN Qty ELSE 0 END) AS [June], SUM(CASE WHEN RIGHT(Mth, 2) = '-7' THEN Qty ELSE 0 END) AS [July], SUM(CASE WHEN RIGHT(Mth, 2) = '-8' THEN Qty ELSE 0 END) AS [August], SUM(CASE WHEN RIGHT(Mth, 2) = '-9' THEN Qty ELSE 0 END) AS [September], SUM(CASE WHEN RIGHT(Mth, 3) = '-10' THEN Qty ELSE 0 END) AS [October], SUM(CASE WHEN RIGHT(Mth, 3) = '-11' THEN Qty ELSE 0 END) AS [November], SUM(CASE WHEN RIGHT(Mth, 3) = '-12' THEN Qty ELSE 0 END) AS [December]FROM @SampleWHERE Mth LIKE '2006%'GROUP BY ItemORDER BY Item E 12°55'05.25"N 56°04'39.16"
Hi Peso, Thanks for your fast reply. Actually I'm using SQL server 2000 and when I'm trying the queries above, I've got an error msg "cannot perform an aggregate function on an expression containing an aggregate or a subquery"Queries I'm using is:SELECT T1.ItemCode, SUM(CASE WHEN RIGHT(T2.Code, 2) = '-1' THEN sum(T1.Quantity) ELSE 0 END) AS [January],SUM(CASE WHEN RIGHT(T2.Code, 2) = '-2' THEN sum(T1.Quantity) ELSE 0 END) AS [Fabruary],SUM(CASE WHEN RIGHT(T2.Code, 2) = '-3' THEN sum(T1.Quantity) ELSE 0 END) AS [March],SUM(CASE WHEN RIGHT(T2.Code, 2) = '-4' THEN sum(T1.Quantity) ELSE 0 END) AS [April],SUM(CASE WHEN RIGHT(T2.Code, 2) = '-5' THEN sum(T1.Quantity) ELSE 0 END) AS [May],SUM(CASE WHEN RIGHT(T2.Code, 2) = '-6' THEN sum(T1.Quantity) ELSE 0 END) AS [June],SUM(CASE WHEN RIGHT(T2.Code, 2) = '-7' THEN sum(T1.Quantity) ELSE 0 END) AS [July],SUM(CASE WHEN RIGHT(T2.Code, 2) = '-8' THEN sum(T1.Quantity) ELSE 0 END) AS [August],SUM(CASE WHEN RIGHT(T2.Code, 2) = '-9' THEN sum(T1.Quantity) ELSE 0 END) AS [September],SUM(CASE WHEN RIGHT(T2.Code, 3) = '-10' THEN sum(T1.Quantity) ELSE 0 END) AS [October],SUM(CASE WHEN RIGHT(T2.Code, 3) = '-11' THEN sum(T1.Quantity) ELSE 0 END) AS [November],SUM(CASE WHEN RIGHT(T2.Code, 3) = '-12' THEN sum(T1.Quantity) ELSE 0 END) AS [December]FROM SAMPLE T0 INNER JOIN SAMPLE1 T1 ON T0.DocEntry = T1.DocEntry INNER JOIN SAMPLE T2 ON T0.FinPod = T2.AbsEntryWHERE T0.Customer ='[%A]' GROUP BY T1.ItemCodePlease advise. Thanks for your help and time.p/s: madhivanan & kristen thanks for your help :pcheers,Serene |
 |
|
|
SwePeso
Patron Saint of Lost Yaks
30421 Posts |
Posted - 2007-10-16 : 06:13:11
|
Sum-A-Sum or Rama-Lama-Ding-Dong?SELECT T1.ItemCode, SUM(CASE WHEN RIGHT(T2.Code, 2) = '-1' THEN T1.Quantity ELSE 0 END) AS [January], SUM(CASE WHEN RIGHT(T2.Code, 2) = '-2' THEN T1.Quantity ELSE 0 END) AS [Fabruary], SUM(CASE WHEN RIGHT(T2.Code, 2) = '-3' THEN T1.Quantity ELSE 0 END) AS [March], SUM(CASE WHEN RIGHT(T2.Code, 2) = '-4' THEN T1.Quantity ELSE 0 END) AS [April], SUM(CASE WHEN RIGHT(T2.Code, 2) = '-5' THEN T1.Quantity ELSE 0 END) AS [May], SUM(CASE WHEN RIGHT(T2.Code, 2) = '-6' THEN T1.Quantity ELSE 0 END) AS [June], SUM(CASE WHEN RIGHT(T2.Code, 2) = '-7' THEN T1.Quantity ELSE 0 END) AS [July], SUM(CASE WHEN RIGHT(T2.Code, 2) = '-8' THEN T1.Quantity ELSE 0 END) AS [August], SUM(CASE WHEN RIGHT(T2.Code, 2) = '-9' THEN T1.Quantity ELSE 0 END) AS [September], SUM(CASE WHEN RIGHT(T2.Code, 3) = '-10' THEN T1.Quantity ELSE 0 END) AS [October], SUM(CASE WHEN RIGHT(T2.Code, 3) = '-11' THEN T1.Quantity ELSE 0 END) AS [November], SUM(CASE WHEN RIGHT(T2.Code, 3) = '-12' THEN T1.Quantity ELSE 0 END) AS [December]FROM [SAMPLE] AS T0INNER JOIN SAMPLE1 AS T1 ON T1.DocEntry = T0.DocEntryINNER JOIN [SAMPLE] AS T2 ON T2.AbsEntry = T0.FinPodWHERE T0.Customer LIKE '%A'GROUP BY T1.ItemCode E 12°55'05.25"N 56°04'39.16" |
 |
|
|
ser_eng
Starting Member
3 Posts |
Posted - 2007-10-16 : 22:41:53
|
quote: Originally posted by Peso Sum-A-Sum or Rama-Lama-Ding-Dong?SELECT T1.ItemCode, SUM(CASE WHEN RIGHT(T2.Code, 2) = '-1' THEN T1.Quantity ELSE 0 END) AS [January], SUM(CASE WHEN RIGHT(T2.Code, 2) = '-2' THEN T1.Quantity ELSE 0 END) AS [Fabruary], SUM(CASE WHEN RIGHT(T2.Code, 2) = '-3' THEN T1.Quantity ELSE 0 END) AS [March], SUM(CASE WHEN RIGHT(T2.Code, 2) = '-4' THEN T1.Quantity ELSE 0 END) AS [April], SUM(CASE WHEN RIGHT(T2.Code, 2) = '-5' THEN T1.Quantity ELSE 0 END) AS [May], SUM(CASE WHEN RIGHT(T2.Code, 2) = '-6' THEN T1.Quantity ELSE 0 END) AS [June], SUM(CASE WHEN RIGHT(T2.Code, 2) = '-7' THEN T1.Quantity ELSE 0 END) AS [July], SUM(CASE WHEN RIGHT(T2.Code, 2) = '-8' THEN T1.Quantity ELSE 0 END) AS [August], SUM(CASE WHEN RIGHT(T2.Code, 2) = '-9' THEN T1.Quantity ELSE 0 END) AS [September], SUM(CASE WHEN RIGHT(T2.Code, 3) = '-10' THEN T1.Quantity ELSE 0 END) AS [October], SUM(CASE WHEN RIGHT(T2.Code, 3) = '-11' THEN T1.Quantity ELSE 0 END) AS [November], SUM(CASE WHEN RIGHT(T2.Code, 3) = '-12' THEN T1.Quantity ELSE 0 END) AS [December]FROM [SAMPLE] AS T0INNER JOIN SAMPLE1 AS T1 ON T1.DocEntry = T0.DocEntryINNER JOIN [SAMPLE] AS T2 ON T2.AbsEntry = T0.FinPodWHERE T0.Customer LIKE '%A'GROUP BY T1.ItemCode E 12?5'05.25"N 56?4'39.16"
Hi Peso,Thanks again for your fast reply. I¡¦ve tried the queries and it¡¦s error free with some problem. The quantity display for every mth is ¡§0¡¨. Actually my scenario is:- item A sold in 01/01/07 = 10 kg- item A sold in 10/01/07 = 20 kgtotal item A sold in ¡§JAN¡¨ = 30 kg- item A sold in 01/03/07 = 5 kg- item A sold in 21/03/07 = 10 kgtotal item A sold in ¡§MAR¡¨ = 15kgAt first, I did managed to sum up the quantity but it display as row (in which I need it as column) and the output is:Item Qty Period----- ----- ---------A 30 2007-01A 15 2007-03I¡¦ve tried the queries you propose and managed to get the period as column (but qty = 0) and the output is:Item Jan Feb Mar----- ----- ----- -----A 0 0 0I¡¦m not sure what¡¦s went wrong. Pleas advise, any help is much appreciated. Thanks for all your time.Cheers,serene |
 |
|
|
|
|
|
|
|