Click here to Skip to main content
15,905,229 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
Hi I have some values in list like

unit quantity datasource
1      10     manual
1      20     system 


I want to show it as

unit manual_quantity  system_quantity 
1     10               20 


How to do this ?

What I have tried:

Can Union server this ?

SQL
SELECT WITH DATA SOURCE MANUAL 
UNION 
SELECT WITH DATA SOURCE SYSTEM


but then how can I be sure they belong to same Unit.

else Self join ?
Posted
Updated 16-Jun-16 2:31am
v2

You can also try below query , its almost similar to above one but derived table is not required
SQL
Select Unit,Manual AS Manual_Quantity,System AS System_Quantity
FROM #TEMP 
PIVOT
(
SUM(quantity) FOR Datasource IN (Manual,[System])
) AS A
 
Share this answer
 
Comments
Maciej Los 18-Jun-16 5:01am    
Good point! A 5!
Seems, you want to pivot data...

There's 2 ways to achieve that using SQL:
1)
SQL
SELECT unit, SUM(CASE WHEN datasource = 'manual' THEN quantity ELSE 0 END) AS manual_quantity,
             SUM(CASE WHEN datasource = 'system' THEN quantity ELSE 0 END) AS system_quantity
FROM table1 
GROUP BY unit

2)
SQL
SELECT unit, [manual], [system]
FROM (
    SELECT *
    FROM table1
) AS DT
PIVOT(SUM(quantity) FOR datasource IN([manual], [system])) AS pt
 
Share this answer
 
Comments
AlwzLearning 27-Jun-16 19:38pm    
Can we do Pivot with LINQ to SQL ?
Maciej Los 28-Jun-16 0:04am    
Yes!

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900