  | 
              
	              
	                
  
    |   | 
   
  
    
        
        สอบถามการ Select ข้อมูล sql server แบบ transpose โดยเปลี่ยนจาก row มาแสดงผลเป็น column     | 
   
  
    |   | 
   
 
 
 
              
  
          
		
     
		
	  
        
             | 
            | 
            | 
             | 
         
        
             | 
                       | 
          
            
               
                 Code (SQL) 
SELECT ID,
(case homework WHEN 'work1' THEN score else 0 end ) as work1,
(case homework WHEN 'work2' THEN score else 0 end ) as work2,
(case homework WHEN 'work3' THEN score else 0 end ) as work3,
(case homework WHEN 'work4' THEN score else 0 end ) as work4,
(case homework WHEN 'work5' THEN score else 0 end ) as work5
FROM TableXX
  
 
https://www.thaicreate.com/tutorial/sql-case-when.html                        
               
               | 
             
            
              
			                
  ประวัติการแก้ไข 2015-05-19 08:55:47              
                              
              
                
                     | 
                     | 
                     | 
                 
                
                     | 
                  
                      
                        | Date :
                            2015-05-19 08:55:31 | 
                        By :
                            ipstarone | 
                         
                    | 
                     | 
                 
                
                     | 
                     | 
                     | 
                 
                | 
             
           
			         | 
             | 
         
        
             | 
            | 
             | 
             | 
         
          
	    
     
               
		
     
		
	  
        
             | 
            | 
            | 
             | 
         
        
             | 
                       | 
          
            
               
                 เราจะไม่ฟิกค่าตรง homework ได้ไหมคะ คืออยากให้ดึงข้อมูลตามในตารางที่มีอยู่                        
               
               | 
             
            
              
			                              
                              
              
                
                     | 
                     | 
                     | 
                 
                
                     | 
                  
                      
                        | Date :
                            2015-05-21 23:01:12 | 
                        By :
                            Preeyapan | 
                         
                    | 
                     | 
                 
                
                     | 
                     | 
                     | 
                 
                | 
             
           
			         | 
             | 
         
        
             | 
            | 
             | 
             | 
         
          
	    
     
               
		
     
		
	     
	    
     
               
		
     
		
	  
        
             | 
            | 
            | 
             | 
         
        
             | 
                       | 
          
            
               
                   
 
Code (SQL) 
select id,[work1],[work2],[work3],[work4],[work5]
from jobs
pivot(
	sum(score) for homework in ([work1],[work2],[work3],[work4],[work5])
) as e
  
 
http://sqlfiddle.com/#!3/c7f45/3                        
               
               | 
             
            
              
			                              
                              
              
                
                     | 
                     | 
                     | 
                 
                
                     | 
                  
                      
                        | Date :
                            2015-05-22 11:38:35 | 
                        By :
                            ipstarone | 
                         
                    | 
                     | 
                 
                
                     | 
                     | 
                     | 
                 
                | 
             
           
			         | 
             | 
         
        
             | 
            | 
             | 
             | 
         
          
	    
     
               
		
     
		
	  
        
             | 
            | 
            | 
             | 
         
        
             | 
                       | 
          
            
               
                 คือจะไม่กำหนด work 1 - 5 ได้ไหมคะ คืออยากให้ดึงตามข้อมูลที่มีอยู่ในตาราง                        
               
               | 
             
            
              
			                              
                              
              
                
                     | 
                     | 
                     | 
                 
                
                     | 
                  
                      
                        | Date :
                            2015-05-24 22:16:31 | 
                        By :
                            Preeyapan | 
                         
                    | 
                     | 
                 
                
                     | 
                     | 
                     | 
                 
                | 
             
           
			         | 
             | 
         
        
             | 
            | 
             | 
             | 
         
          
	    
     
               
		
     
		
	  
        
             | 
            | 
            | 
             | 
         
        
             | 
                       | 
          
            
               
                 Code (SQL) 
DECLARE @DynamicPivotQuery AS NVARCHAR(MAX)
DECLARE @ColumnName AS NVARCHAR(MAX)
 
--Get distinct values of the PIVOT Column 
SELECT @ColumnName= ISNULL(@ColumnName + ',','') 
       + QUOTENAME(homework)
FROM (SELECT DISTINCT homework FROM tablename) AS TableTemp
 
--Prepare the PIVOT query using the dynamic 
SET @DynamicPivotQuery = 
  N'SELECT id, ' + @ColumnName + '
    FROM tablename
    PIVOT(SUM(score) 
          FOR homework IN (' + @ColumnName + ')) AS PVTTable'
--Execute the Dynamic Pivot Query
EXEC sp_executesql @DynamicPivotQuery
 
 
ref. http://sqlhints.com/2014/03/18/dynamic-pivot-in-sql-server/ 
 
                         
               
               | 
             
            
              
			                
  ประวัติการแก้ไข 2015-05-25 03:19:34              
                              
              
                
                     | 
                     | 
                     | 
                 
                
                     | 
                  
                      
                        | Date :
                            2015-05-25 03:19:04 | 
                        By :
                            01000010 | 
                         
                    | 
                     | 
                 
                
                     | 
                     | 
                     | 
                 
                | 
             
           
			         | 
             | 
         
        
             | 
            | 
             | 
             | 
         
          
	    
     
               
		
     
		
	  
        
             | 
            | 
            | 
             | 
         
        
             | 
                       | 
          
            
               
                 ถ้าจะให้ where ตาม resub_id ที่เลือก ไม่ทราบว่าต้องใส่ตรงไหนคะ 
ขอบคุณคะ                        
               
               | 
             
            
              
			                              
                              
              
                
                     | 
                     | 
                     | 
                 
                
                     | 
                  
                      
                        | Date :
                            2015-05-25 22:11:31 | 
                        By :
                            Preeyapan | 
                         
                    | 
                     | 
                 
                
                     | 
                     | 
                     | 
                 
                | 
             
           
			         | 
             | 
         
        
             | 
            | 
             | 
             | 
         
          
	    
     
               
		
     
		
	  
        
             | 
            | 
            | 
             | 
         
        
             | 
                       | 
          
            
               
                 ผมว่าอยู่ที่การออกแบบ Table แล้วครับ เห็นหลายกระทู้แล้ว เหมือนจะกลับค่าไป-มา 
 
ลองบอกโปรเจ็ค จุดประสงค์งานคร่าว ๆ มาหน่อยได้ไหมครับ 
 
เผื่อผมและคนในนี้ สามารถแนะนำแนวทางโครงสร้างฐานข้อมูลให้ได้ครับ 
 
                         
               
               | 
             
            
              
			                              
                              
              
                
                     | 
                     | 
                     | 
                 
                
                     | 
                  
                      
                        | Date :
                            2015-05-25 23:11:52 | 
                        By :
                            01000010 | 
                         
                    | 
                     | 
                 
                
                     | 
                     | 
                     | 
                 
                | 
             
           
			         | 
             | 
         
        
             | 
            | 
             | 
             | 
         
          
	    
     
               
		
     
		
	  
        
             | 
            | 
            | 
             | 
         
        
             | 
                       | 
          
            
               
                 ถ้า normalized ตารางนี้หน่อยจะทำให้ยืดหยุ่นในการแสดงผลมากกว่า 
และไม่ทำให้ query ออกท่าพิสดารปานนั้นด้วยนะครัช 
 
ปล. exec query ไม่ได้ใช้นานจนแทบจะลืมแล้วนะครัชนี่ หุหุ                        
               
               | 
             
            
              
			                              
                              
              
                
                     | 
                     | 
                     | 
                 
                
                     | 
                  
                      
                        | Date :
                            2015-05-26 07:34:45 | 
                        By :
                            DOG{B} | 
                         
                    | 
                     | 
                 
                
                     | 
                     | 
                     | 
                 
                | 
             
           
			         | 
             | 
         
        
             | 
            | 
             | 
             | 
         
          
	    
     
      		  
	
     | 
   
 
                 |