  | 
              
	              
	                
  
    |   | 
   
  
    
        
        VB.net ติดปัญหาเรื่อง Code Sql Select ข้อมูลออกมาจาก DB แล้วไม่เหมือนกันใน DB     | 
   
  
    |   | 
   
 
 
 
	
		
			  | 
	   | 
	    | 
		
			  | 
	 
	
		
			  | 
		 		   | 
	  	    
          
            
			
	
			
			 
                S/W ทั้งหมดในStock 
 
  
 
S/W ที่เบิกใช้ 
 
  
 
S/Wที่เหลือ คือจะดึง ตัว Qty-RecQty  แต่ค่าที่ออกมามันไม่เหมือนกันให้query1กับ2อ่ะครับ 
  
  
 
 
อันนี้เปนcode 
SELECT IT_TransContractor.ModelID, IT_EquipModel.Model_Desc, Sum(IT_TransContractor.ReceivedQty) AS Qty, Sum(IT_TransStaff.WithdrawalQty) AS RecQty
FROM IT_EquipModel INNER JOIN (IT_Description INNER JOIN (IT_TransContractor INNER JOIN IT_TransStaff ON (IT_TransContractor.ItemNo = IT_TransStaff.ItemNo) AND (IT_TransContractor.ModelID = IT_TransStaff.ModelID)) ON IT_Description.ItemNo = IT_TransStaff.ItemNo) ON (IT_EquipModel.ModelID = IT_TransContractor.ModelID) AND (IT_EquipModel.OrderedTimes = IT_TransContractor.OrderedTimes) AND (IT_EquipModel.ContractorID = IT_TransContractor.ContractorID) AND (IT_EquipModel.ItemNo = IT_TransContractor.ItemNo)
WHERE (((IT_TransContractor.ItemNo)='IT002'))
GROUP BY IT_TransContractor.ModelID, IT_EquipModel.Model_Desc, IT_TransContractor.ItemNo, IT_Description.Item_Desc;
  
 
  
 
T^Tนั่งปวดหลายวันแหละครับหาไม่เจอสักที
 
 
  Tag : .NET, Ms Access, MySQL, Win (Windows App), VS 2010 (.NET 4.x)               
                        | 
           
          
            
		
  ประวัติการแก้ไข 2013-12-29 10:16:25 2013-12-29 10:17:03	
                             | 
           
          
            
              
                   | 
                   | 
                   | 
               
              
                   | 
                
                    
                      | Date :
                          2013-12-29 10:14:41 | 
                      By :
                          kamasaigis2 | 
                      View :
                          1122 | 
                      Reply :
                          8 | 
                     
                  | 
                   | 
               
              
                   | 
                   | 
                   | 
               
              | 
           
          
            | 
			 | 
           
         
	    
		             | 
		
			  | 
	 
	
		
			  | 
		  | 
		
			  | 
		
			  | 
	 
 
              
  
          
		
     
		
	     
	    
     
               
		
     
		
	     
	    
     
               
		
     
		
	  
        
             | 
            | 
            | 
             | 
         
        
             | 
                       | 
          
            
               
                 คือตัว  qty(ของตารางที่1) กับ recqty(ของตารางที่2) พอselectรวมกัน(เเบบตารางที่3) ได้ค่าของ qty(ของตารางที่1) กับตัว recqty(ของตารางที่2) ไม่เท่ากับในตารางที่1และตารางที่2ตอนที่selectแยกเฉพาะQty หรือเฉพาะRecQtyอ่ะครับ                        
               
               | 
             
            
              
			                
  ประวัติการแก้ไข 2013-12-30 02:08:48              
                              
              
                
                     | 
                     | 
                     | 
                 
                
                     | 
                  
                      
                        | Date :
                            2013-12-29 19:13:10 | 
                        By :
                            kamasaigis2 | 
                         
                    | 
                     | 
                 
                
                     | 
                     | 
                     | 
                 
                | 
             
           
			         | 
             | 
         
        
             | 
            | 
             | 
             | 
         
          
	    
     
               
		
     
		
	  
        
             | 
            | 
            | 
             | 
         
        
             | 
                       | 
          
            
               
                 ลองใช้พวก Left Join ยังครับ ผมดู Inner join ของคุณแล้วงงมากเลยไม่ค่อยเข้าใจเท่าไหร่                          
               
               | 
             
            
              
			                              
                              
              
                
                     | 
                     | 
                     | 
                 
                
                     | 
                  
                      
                        | Date :
                            2013-12-30 02:52:53 | 
                        By :
                            01000010 | 
                         
                    | 
                     | 
                 
                
                     | 
                     | 
                     | 
                 
                | 
             
           
			         | 
             | 
         
        
             | 
            | 
             | 
             | 
         
          
	    
     
               
		
     
		
	  
        
             | 
            | 
            | 
             | 
         
        
             | 
                       | 
          
            
               
                 ลองใช้แล้วครับ ผลออกมาเหมือนกันครับ sqlอันนี้accessมานjoinให้autoอ่ะครับ 
 
อันนี้เปน left joinCode (SQL) 
SELECT IT_TransContractor.ModelID, IT_EquipModel.Model_Desc, Sum(IT_TransContractor.ReceivedQty) AS Qty, Sum(IT_TransStaff.WithdrawalQty) AS RecQty
FROM IT_Description LEFT JOIN (IT_EquipModel LEFT JOIN (IT_TransContractor LEFT JOIN IT_TransStaff ON (IT_TransContractor.ItemNo = IT_TransStaff.ItemNo) AND (IT_TransContractor.ModelID = IT_TransStaff.ModelID)) ON (IT_EquipModel.ModelID = IT_TransContractor.ModelID) AND (IT_EquipModel.OrderedTimes = IT_TransContractor.OrderedTimes) AND (IT_EquipModel.ContractorID = IT_TransContractor.ContractorID) AND (IT_EquipModel.ItemNo = IT_TransContractor.ItemNo)) ON IT_Description.ItemNo = IT_EquipModel.ItemNo
WHERE (((IT_TransContractor.ItemNo)='IT002'))
GROUP BY IT_TransContractor.ModelID, IT_EquipModel.Model_Desc, IT_TransContractor.ItemNo, IT_Description.Item_Desc;
  
 
 
                         
               
               | 
             
            
              
			                
  ประวัติการแก้ไข 2013-12-30 03:16:09 2013-12-30 03:16:32 2013-12-30 03:17:00 2013-12-30 03:19:01              
                              
              
                
                     | 
                     | 
                     | 
                 
                
                     | 
                  
                      
                        | Date :
                            2013-12-30 03:11:15 | 
                        By :
                            kamasaigis2 | 
                         
                    | 
                     | 
                 
                
                     | 
                     | 
                     | 
                 
                | 
             
           
			         | 
             | 
         
        
             | 
            | 
             | 
             | 
         
          
	    
     
               
		
     
		
	  
        
             | 
            | 
            | 
             | 
         
        
             | 
                       | 
          
            
               
                 สามารถ Join กันแบบไม่ซ้อนวงเล็บได้ไหมครับ Join แบบคุณผมนึกผลลัพท์ไม่ออกเลย 
 
แล้วมันไม่ Error หรอครับ Join ซ้อนวงเล็บ ผมลอง Join ซ้อนวงเล็บใน SQL Server มัน Error                          
               
               | 
             
            
              
			                
  ประวัติการแก้ไข 2013-12-30 13:25:08              
                              
              
                
                     | 
                     | 
                     | 
                 
                
                     | 
                  
                      
                        | Date :
                            2013-12-30 13:24:44 | 
                        By :
                            01000010 | 
                         
                    | 
                     | 
                 
                
                     | 
                     | 
                     | 
                 
                | 
             
           
			         | 
             | 
         
        
             | 
            | 
             | 
             | 
         
          
	    
     
               
		
     
		
	  
        
             | 
            | 
            | 
             | 
         
        
             | 
                       | 
          
            
               
                 ในaccess กับ ในvb2010 ผมไม่ error นะครับ ที่วงเล็บซ้อนกันน่าจะมาจาก table IT_EquipModel กับ table IT_TransContractor เชื่อมกันหลายอันอ่ะครับ ผมลองเอาออกแล้วอันนี้sql อ่ะครับ 
 
 
Code (SQL) 
SELECT IT_TransContractor.ModelID, IT_EquipModel.Model_Desc, Sum(IT_TransContractor.ReceivedQty) AS Qty, Sum(IT_TransStaff.WithdrawalQty) AS RecQty
FROM (IT_Description INNER JOIN IT_EquipModel ON IT_Description.ItemNo = IT_EquipModel.ItemNo) INNER JOIN (IT_TransContractor INNER JOIN IT_TransStaff ON IT_TransContractor.ModelID = IT_TransStaff.ModelID) ON IT_EquipModel.ModelID = IT_TransContractor.ModelID
WHERE (((IT_TransContractor.ItemNo)='IT002'))
GROUP BY IT_TransContractor.ModelID, IT_EquipModel.Model_Desc, IT_TransContractor.ItemNo, IT_Description.Item_Desc;
  
 
ลองrun query ดูออกมาได้เหมือนเดิมอ่ะครับ 
 
  
 
 
table 
 
                         
               
               | 
             
            
              
			                              
                              
              
                
                     | 
                     | 
                     | 
                 
                
                     | 
                  
                      
                        | Date :
                            2013-12-30 14:43:53 | 
                        By :
                            kamasaigis2 | 
                         
                    | 
                     | 
                 
                
                     | 
                     | 
                     | 
                 
                | 
             
           
			         | 
             | 
         
        
             | 
            | 
             | 
             | 
         
          
	    
     
               
		
     
		
	  
        
             | 
            | 
            | 
             | 
         
        
             | 
                       | 
          
            
               
                 ในที่สุดก็ได้แหละครับ ใช้subquery มาช่วย 
Code (SQL) 
SELECT IT_EquipModel.ItemNo, IT_EquipModel.ModelID, IT_EquipModel.Model_Desc, (SELECT  Sum(Switch([IT_TransContractor.ReceivedQty] Is Null,0,[IT_TransContractor.ReceivedQty] Is Not Null,[IT_TransContractor.ReceivedQty]))  AS Qty
FROM IT_TransContractor where ( IT_EquipModel.ModelID = IT_TransContractor.ModelID)) AS Qty, 
(SELECT Sum(IT_TransStaff.WithdrawalQty) AS RecQty FROM IT_TransStaff
 where ( IT_EquipModel.ModelID = IT_TransStaff.ModelID) ) AS RecQty , [Qty] - [RecQty] as AwQty
FROM IT_EquipModel
WHERE (((IT_EquipModel.ItemNo)='IT002'))
GROUP BY IT_EquipModel.ItemNo, IT_EquipModel.ModelID, IT_EquipModel.Model_Desc
  
 
                         
               
               | 
             
            
              
			                              
                              
              
                
                     | 
                     | 
                     | 
                 
                
                     | 
                  
                      
                        | Date :
                            2014-01-02 16:00:07 | 
                        By :
                            kamasaigis2 | 
                         
                    | 
                     | 
                 
                
                     | 
                     | 
                     | 
                 
                | 
             
           
			         | 
             | 
         
        
             | 
            | 
             | 
             | 
         
          
	    
     
      		  
	
     | 
   
 
                 |