  | 
              
	              
	                  
 
  
    |   | 
   
  
    
        
        ถ้าต้องการ Sum แล้วเอามาทำบางอย่างและต้องการ ซ้อน Sum และ Group by ต้องทำไงครับ     | 
   
  
    |   | 
   
 
 
 
	
		
			  | 
	   | 
	    | 
		
			  | 
	 
	
		
			  | 
		 		   | 
	  	    
          
            
			
	
			
			 
                จากรูปนะครับ มีการทำ Sum Items No. แล้ว 1 ครั้ง แล้วมีการเอามาทำการแปลงเข้า หน่วย SQM ด้วย Case function 
แต่ใน RP 1 ตัวจะมี Items No. 2 รายการ 
ถ้าผมต้องการให้ sum อีกครั้ง ใน Total โดย ใช้ Group By 1,2 ; ได้ไหมครับ 
ตอนนี้งงโค้ดคิดไม่ออกเลย ขอบคุณมากๆครับ 
 
Code 
select aa.[Document No_] as RP 
,aa.[Item No_] 
,aa.[Source No_] as ITEMSFG 
,(sum(aa.[Quantity]))*-1 as [Paper Quantity] 
,cc.[Paper SQM per Sheet] 
,case when cc.[Paper SQM per Sheet] = 0 then (sum(aa.[Quantity]))*-1 
when cc.[Paper SQM per Sheet] > 0 then (sum(aa.[Quantity]))*-1 * cc.[Paper SQM per Sheet] 
end as [Total input Area SQM] 
 
 
FROM [PPC_PROD_2017].[dbo].[ppp_$Item Ledger Entry] aa 
inner join [dbo].[ppp_$Item] bb 
on aa.[Source No_] = bb.No_ 
inner join (SELECT [No_] 
,case when [UOM - Width]='INC' then ((Width * Length)* 0.000645 ) 
when [UOM - Width]='CM.' then ((Width * Length)* 0.0001 ) 
else 0 
end as [Paper SQM per Sheet] 
FROM [PPC_PROD_2017].[dbo].[ppp_$Item] 
where [Item Category Code] in ('RM_PAPER','RM_STK_R','RM_STICKER')) cc 
on aa.[Item No_] = cc.No_ 
where aa.[Entry Type] = 5 and aa.[Item No_] like '27%' and aa.[Item Category Code] in ('RM_PAPER','RM_STK_R','RM_STICKER') and aa.[Document No_] = 'RP21010289' 
 
group by aa.[Item No_],aa.[Source No_],aa.[Document No_],cc.[Paper SQM per Sheet]  
 
 
 
 
  Tag : Ms SQL Server 2014, Ms SQL Server 2016               
                        | 
           
          
            | 
			
                             | 
           
          
            
              
                   | 
                   | 
                   | 
               
              
                   | 
                
                    
                      | Date :
                          2021-02-20 11:39:29 | 
                      By :
                          bondhams | 
                      View :
                          1937 | 
                      Reply :
                          1 | 
                     
                  | 
                   | 
               
              
                   | 
                   | 
                   | 
               
              | 
           
          
            | 
			 | 
           
         
	    
		             | 
		
			  | 
	 
	
		
			  | 
		  | 
		
			  | 
		
			  | 
	 
 
              
  
          
		
     
		
	  
        
             | 
            | 
            | 
             | 
         
        
             | 
                       | 
          
            
               
                 Code (SQL) 
, case 
	when cc.[Paper SQM per Sheet] = 0 then (sum(aa.[Quantity]))*-1
	when cc.[Paper SQM per Sheet] > 0 then (sum(aa.[Quantity]))*-1 * cc.[Paper SQM per Sheet]
 end as [Total input Area SQM]
  
 
แก้เป็น 
 
Code (SQL) 
, sum(
	case 
	when cc.[Paper SQM per Sheet] = 0 then aa.[Quantity]*-1
	when cc.[Paper SQM per Sheet] > 0 then aa.[Quantity]*-1 * cc.[Paper SQM per Sheet]
	else 0
	end
) as [Total input Area SQM]
  
 
ปล. แต่งงครับ ทำไมต้อง *-1                        
               
               | 
             
            
              
			                
  ประวัติการแก้ไข 2021-02-20 12:21:07 2021-02-20 12:22:10              
                              
              
                
                     | 
                     | 
                     | 
                 
                
                     | 
                  
                      
                        | Date :
                            2021-02-20 12:17:00 | 
                        By :
                            Chaidhanan | 
                         
                    | 
                     | 
                 
                
                     | 
                     | 
                     | 
                 
                | 
             
           
			         | 
             | 
         
        
             | 
            | 
             | 
             | 
         
          
	    
     
      		  
	
     | 
   
 
                 |