  | 
              
	              
	                
  
    |   | 
   
  
    
        
        ถามเกี่ยวกับ Group by  ใน sql server ค่ะ สวัสดีค่ะ คือต้องการ หาผลรวมของปริมาณเลือดแต่ละหมู่ค่ะ     | 
   
  
    |   | 
   
 
 
 
              
  
          
		
     
		
	  
        
             | 
            | 
            | 
             | 
         
        
             | 
                       | 
          
            
               
                 มันมี Table  หน้าตายังไงอ่ะครับ มีข้อมูลอย่างไง 
Quantity = > มันคืออะไร ครับ แล้ว ที่บอกว่าลองใส่ข้อมูลไป แล้ว ลองยกตัวอย่างให้หน่อยนะครับ                        
               
               | 
             
            
              
			                                
              
                
                     | 
                     | 
                     | 
                 
                
                     | 
                  
                      
                        | Date :
                            2010-02-26 14:11:47 | 
                        By :
                            ksillapapan | 
                         
                    | 
                     | 
                 
                
                     | 
                     | 
                     | 
                 
                | 
             
           
			         | 
             | 
         
        
             | 
            | 
             | 
             | 
         
          
	    
     
               
		
     
		
	  
        
             | 
            | 
            | 
             | 
         
        
             | 
                       | 
          
            
               
                 ปกติเขาเขียนแบบนี้ 
SELECT BloodGroup, Quantity  
FROM CallEmerge  
GROUP BY BloodGroup, Quantity 
 
ถ้า Quantity เป็น datatype แบบ numberic มันจะรวม SUM ให้เองครับ                        
               
               | 
             
            
              
			                                
              
                
                     | 
                     | 
                     | 
                 
                
                     | 
                  
                      
                        | Date :
                            2010-02-26 14:33:07 | 
                        By :
                            numenoy | 
                         
                    | 
                     | 
                 
                
                     | 
                     | 
                     | 
                 
                | 
             
           
			         | 
             | 
         
        
             | 
            | 
             | 
             | 
         
          
	    
     
               
		
     
		
	  
        
             | 
            | 
            | 
             | 
         
        
             | 
                       | 
          
            
               
                 ขอบคุณค่ะ *0*   Quantity = ปริมาณ  Bloodgroup = กรุ๊ปเลือด 
แล้วที่ insertสิ่งที่แตกต่างคือประมาณนี้ค่ะ 
A    10 
B    20    
A    40  
O    15 
  
 
 คือได้ทดลองตามโค๊ดที่แนะมาเรียบร้อยแล้ว ส่วน datatype ก็เปนแบบ numberic  
 
ผลคือว่า มันจัดเรียงข้อมูลที่เหมือนๆกันไว้ติดกันแล้วค่ะ  **แต่ มันยังไม่ได้ SUM ให้อ่ะค่ะ 
 
มันเป็นปัญหาที่อะไรหนอ                        
               
               | 
             
            
              
			                                
              
                
                     | 
                     | 
                     | 
                 
                
                     | 
                  
                      
                        | Date :
                            2010-02-26 19:26:54 | 
                        By :
                            ladyjupz | 
                         
                    | 
                     | 
                 
                
                     | 
                     | 
                     | 
                 
                | 
             
           
			         | 
             | 
         
        
             | 
            | 
             | 
             | 
         
          
	    
     
               
		
     
		
	  
        
             | 
            | 
            | 
             | 
         
        
             | 
                       | 
          
            
               
                   
 
  
 
คำสั่งควรจะได้ผลลัพธ์ที่ถูก 
แต่ ERROR แจ้งว่า QUANTITY ไม่ใช่ Column  
ขอดูโครงสร้าง Table นี้ และ CODE VB ช่วงนี้  COPY มาเลย   
จัดมาค่ะ                        
               
               | 
             
            
              
			                                
              
                
                     | 
                     | 
                     | 
                 
                
                     | 
                  
                      
                        | Date :
                            2010-02-26 23:16:00 | 
                        By :
                            blurEye | 
                         
                    | 
                     | 
                 
                
                     | 
                     | 
                     | 
                 
                | 
             
           
			         | 
             | 
         
        
             | 
            | 
             | 
             | 
         
          
	    
     
               
		
     
		
	  
        
             | 
            | 
            | 
             | 
         
        
             | 
                       | 
          
            
               
                   
 
Code (VB.NET) 
 
ถ้าเป็นแบบ code เก่าหนู อันแรก มันจะ error แบบที่บอกอ่ะค่ะ 
<%@ Import Namespace="System.Data"%>
<%@ Import Namespace="System.Data.SqlClient"%>
<%@Import Namespace="System.IO" %>
<%@ Page Language="VB" %>
<%@ Register Assembly="System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
    Namespace="System.Web.UI" TagPrefix="asp" %>
<script runat="server">
    Dim objConn As SqlConnection
    Dim objCmd As SqlCommand
    Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs)
        Dim strConnString As String
        strConnString = "Server=localhost;UID=sa;PASSWORD=xxxx;database=blooddb;Max Pool Size=400;Connect Timeout=600;"
        objConn = New SqlConnection(strConnString)
        objConn.Open()
        BindData()
        Label2.Text = "Last update :" + " " + DateTime.Now.ToString()
    End Sub
    
   
    Sub IntervalTimer_Tick(ByVal sender As Object, ByVal e As EventArgs) Handles IntervalTimer.Tick
        
        Label2.Text = "Last update :" + " " + DateTime.Now.ToString()
        BindData()
    End Sub
   
    Sub BindData()
       
		Dim ds As DataSet
		ds = CreateDataSet()
		myRepeater.DataSource = ds.Tables(0).DefaultView
		myRepeater.DataBind()	
    End Sub
     
	Function CreateDataSet() As DataSet
        Dim objConn As New System.Data.SqlClient.SqlConnection
		Dim objCmd As New System.Data.SqlClient.SqlCommand
        Dim dtAdapter As New System.Data.SqlClient.SqlDataAdapter
        Dim wr As StreamWriter = File.CreateText(Server.MapPath("computeblood.xml"))
		
        Dim ds As New DataSet
		Dim strConnString,strSQL As String
        strConnString = "Server=localhost;UID=sa;PASSWORD=xxxx;database=blooddb;Max Pool Size=400;Connect Timeout=1000;"
        strSQL = "SELECT BloodGroup,SUM(Quantity) FROM CallEmerge GROUP BY BloodGroup"
        
		objConn.ConnectionString = strConnString
		With objCmd
			.Connection = objConn
			.CommandText = strSQL			
			.CommandType = CommandType.Text
		End With
		dtAdapter.SelectCommand = objCmd
		dtAdapter.Fill(ds)
        '***ds.WriteXml(Server.MapPath("computeblood.xml"))***'		
		ds.WriteXml(wr)
		wr.Close()
		
		dtAdapter = Nothing
		
		objConn.Close()
		objConn = Nothing
		
		Return ds   '*** Return DataSet ***'
		
	End Function
</script>
                        
               
               | 
             
            
              
			                                
              
                
                     | 
                     | 
                     | 
                 
                
                     | 
                  
                      
                        | Date :
                            2010-02-26 23:48:12 | 
                        By :
                            ladyjupz | 
                         
                    | 
                     | 
                 
                
                     | 
                     | 
                     | 
                 
                | 
             
           
			         | 
             | 
         
        
             | 
            | 
             | 
             | 
         
          
	    
     
               
		
     
		
	  
        
             | 
            | 
            | 
             | 
         
        
             | 
                       | 
          
            
               
                   ดูจนตาเหล่ ยังไม่เห็นอะไรผิดปกติ  
งั้นลองเอา  
SELECT BloodGroup ,SUM(Quantiity) 
FROM [CALLEMERGE] 
GROUP BY BloodGroup; 
 
ไปรันที่ SQL MANAGEMENT STUDIO แล้วขอดูผลรันค่ะ 
 
อีกอย่าง CAP Error ของ VB Code ออกมาให้ด้วยนะคะ 
พี่ๆคนไหนเห็น อะไรผิดปกติมั่งปะคะ                        
               
               | 
             
            
              
			                                
              
                
                     | 
                     | 
                     | 
                 
                
                     | 
                  
                      
                        | Date :
                            2010-02-27 00:37:09 | 
                        By :
                            blurEye | 
                         
                    | 
                     | 
                 
                
                     | 
                     | 
                     | 
                 
                | 
             
           
			         | 
             | 
         
        
             | 
            | 
             | 
             | 
         
          
	    
     
               
		
     
		
	  
        
             | 
            | 
            | 
             | 
         
        
             | 
                       | 
          
            
               
                 นี่คือ error ที่ captureมาค่ะ 
  
 
คือหนูรันใน sql server management ไม่เปนอ่ะคะ แหะๆ ปกติใช้browser run ตลอด^^"  
 
แล้วงงอย่างนึงค่ะว่า ถ้าเขียนโค๊ดนี้ ตามที่ คุณ numenoy บอกมัน compile ผ่าน คือgroup แต่ไม่ sum ออกมาประมาณแบบนี้น่ะค่ะ 
Code (VB.NET) 
strSQL = "SELECT BloodGroup,Quantity FROM CallEmerge GROUP BY BloodGroup,Quantity"
  
                         
               
               | 
             
            
              
			                                
              
                
                     | 
                     | 
                     | 
                 
                
                     | 
                  
                      
                        | Date :
                            2010-02-27 01:35:43 | 
                        By :
                            ladyjupz | 
                         
                    | 
                     | 
                 
                
                     | 
                     | 
                     | 
                 
                | 
             
           
			         | 
             | 
         
        
             | 
            | 
             | 
             | 
         
          
	    
     
               
		
     
		
	  
        
             | 
            | 
            | 
             | 
         
        
             | 
                       | 
          
            
               
                 นี่ค่ะ รอง run ใน sql server ได้ผลถูกต้อง แสดงว่ามีปัญหาที่เขียน sqlใน vb.netหรือป่าว TT_TT หนูก้อว่าหนูเขียนไม่ผิดนี่นา  
 
                         
               
               | 
             
            
              
			                                
              
                
                     | 
                     | 
                     | 
                 
                
                     | 
                  
                      
                        | Date :
                            2010-02-27 13:03:33 | 
                        By :
                            ladyjupz | 
                         
                    | 
                     | 
                 
                
                     | 
                     | 
                     | 
                 
                | 
             
           
			         | 
             | 
         
        
             | 
            | 
             | 
             | 
         
          
	    
     
               
		
     
		
	  
        
             | 
            | 
            | 
             | 
         
        
             | 
                       | 
          
            
               
                 โอ้ พี่ๆคะหนูเจอมันแล้ววว คือหนูลองเปลี่ยน 
strSQL = "SELECT BloodGroup,SUM(Quantity) AS Total FROM CallEmerge GROUP BY BloodGroup" 
 
ที่มันผิดคือ หนูให้ ตรง repeater มันดึงจากตารางเก่า = =' 
<td><%#Container.DataItem("BloodGroup") %></td> 
<td><%#Container.DataItem("Quantity") %></td> 
 
ซึ่งที่ถูกต้อง ความจิงแล้ว มันต้องไปดึงจากตารางใหม่    
<td><%#Container.DataItem("BloodGroup") %></td> 
<td><%#Container.DataItem("Total") %></td> 
 
555+ เพิ่งมา อ๋อหลังจาก รันใน sql server management studio ไม่ง้านนั่งดูจนตาเหล่ทั้งคืนก้อไม่ออก   
ขอบคุณทุกคนมากนะคะๆ ^/\^ แล้วหนูจะเก็บไว้เปนประสบการณ์                        
               
               | 
             
            
              
			                                
              
                
                     | 
                     | 
                     | 
                 
                
                     | 
                  
                      
                        | Date :
                            2010-02-27 13:23:09 | 
                        By :
                            ladyjupz | 
                         
                    | 
                     | 
                 
                
                     | 
                     | 
                     | 
                 
                | 
             
           
			         | 
             | 
         
        
             | 
            | 
             | 
             | 
         
          
	    
     
               
		
     
		
	  
        
             | 
            | 
            | 
             | 
         
        
             | 
                       | 
          
            
               
                 ยินดีด้วยค่ะ เดวมาจัดลูกตาๆให้หายตาเหล่ด้วยกันค่ะ ^^                        
               
               | 
             
            
              
			                                
              
                
                     | 
                     | 
                     | 
                 
                
                     | 
                  
                      
                        | Date :
                            2010-02-27 13:30:28 | 
                        By :
                            blurEye | 
                         
                    | 
                     | 
                 
                
                     | 
                     | 
                     | 
                 
                | 
             
           
			         | 
             | 
         
        
             | 
            | 
             | 
             | 
         
          
	    
     
      		  
	
     | 
   
 
                 |