Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 109,028

HOME > .NET Framework > Forum > ถามเกี่ยวกับ Group by ใน sql server ค่ะ สวัสดีค่ะ คือต้องการ หาผลรวมของปริมาณเลือดแต่ละหมู่ค่ะ



 

ถามเกี่ยวกับ Group by ใน sql server ค่ะ สวัสดีค่ะ คือต้องการ หาผลรวมของปริมาณเลือดแต่ละหมู่ค่ะ

 



Topic : 039623



โพสกระทู้ ( 24 )
บทความ ( 0 )



สถานะออฟไลน์




สวัสดีค่ะ คือต้องการ หาผลรวมของปริมาณเลือดแต่ละหมู่ค่ะ ได้ทดลองinsert ข้อมูล ที่แตกต่างกันลงไปในฐานข้อมูลแล้วลอง เขียนSQLดึงขึ้นมาแบบนี้ค่ะ

strSQL = "SELECT BloodGroup,SUM(Quantity) FROM CallEmerge GROUP BY BloodGroup"

แต่มันขึ้น error ว่า

Quantity is neither a DataColumn nor a DataRelation for table Table.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.ArgumentException: Quantity is neither a DataColumn nor a DataRelation for table Table.

คือถ้าลองใช้ strSQL = "SELECT BloodGroup,Quantity FROM CallEmerge "
มันก้อดึงได้ปกติ คงน่าจะมีปัญหาเกี่ยวกับ Group by sum จะแก้ปัญหานี้อย่างไรดีค่ะ



Tag : - - - -







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2010-02-26 12:12:01 By : ladyjupz View : 3005 Reply : 10
 

 

No. 1



โพสกระทู้ ( 179 )
บทความ ( 0 )



สถานะออฟไลน์


มันมี Table หน้าตายังไงอ่ะครับ มีข้อมูลอย่างไง
Quantity = > มันคืออะไร ครับ แล้ว ที่บอกว่าลองใส่ข้อมูลไป แล้ว ลองยกตัวอย่างให้หน่อยนะครับ






Date : 2010-02-26 14:11:47 By : ksillapapan
 


 

No. 2



โพสกระทู้ ( 373 )
บทความ ( 0 )



สถานะออฟไลน์


ปกติเขาเขียนแบบนี้
SELECT BloodGroup, Quantity
FROM CallEmerge
GROUP BY BloodGroup, Quantity

ถ้า Quantity เป็น datatype แบบ numberic มันจะรวม SUM ให้เองครับ
Date : 2010-02-26 14:33:07 By : numenoy
 

 

No. 3



โพสกระทู้ ( 24 )
บทความ ( 0 )



สถานะออฟไลน์


ขอบคุณค่ะ *0* Quantity = ปริมาณ Bloodgroup = กรุ๊ปเลือด
แล้วที่ insertสิ่งที่แตกต่างคือประมาณนี้ค่ะ
A 10
B 20
A 40
O 15


คือได้ทดลองตามโค๊ดที่แนะมาเรียบร้อยแล้ว ส่วน datatype ก็เปนแบบ numberic

ผลคือว่า มันจัดเรียงข้อมูลที่เหมือนๆกันไว้ติดกันแล้วค่ะ **แต่ มันยังไม่ได้ SUM ให้อ่ะค่ะ

มันเป็นปัญหาที่อะไรหนอ
Date : 2010-02-26 19:26:54 By : ladyjupz
 


 

No. 4



โพสกระทู้ ( 1,603 )
บทความ ( 1 )



สถานะออฟไลน์


OK-HEADER

gxxx

คำสั่งควรจะได้ผลลัพธ์ที่ถูก
แต่ ERROR แจ้งว่า QUANTITY ไม่ใช่ Column
ขอดูโครงสร้าง Table นี้ และ CODE VB ช่วงนี้ COPY มาเลย
จัดมาค่ะ
Date : 2010-02-26 23:16:00 By : blurEye
 


 

No. 5



โพสกระทู้ ( 24 )
บทความ ( 0 )



สถานะออฟไลน์


โครงสร้างtable

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
 


 

No. 6



โพสกระทู้ ( 1,603 )
บทความ ( 1 )



สถานะออฟไลน์


ดูจนตาเหล่ ยังไม่เห็นอะไรผิดปกติ
งั้นลองเอา
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
 


 

No. 7



โพสกระทู้ ( 24 )
บทความ ( 0 )



สถานะออฟไลน์


นี่คือ error ที่ captureมาค่ะ
error code

คือหนูรันใน sql server management ไม่เปนอ่ะคะ แหะๆ ปกติใช้browser run ตลอด^^"

แล้วงงอย่างนึงค่ะว่า ถ้าเขียนโค๊ดนี้ ตามที่ คุณ numenoy บอกมัน compile ผ่าน คือgroup แต่ไม่ sum ออกมาประมาณแบบนี้น่ะค่ะ
Code (VB.NET)
strSQL = "SELECT BloodGroup,Quantity FROM CallEmerge GROUP BY BloodGroup,Quantity"

result
Date : 2010-02-27 01:35:43 By : ladyjupz
 


 

No. 8



โพสกระทู้ ( 24 )
บทความ ( 0 )



สถานะออฟไลน์


นี่ค่ะ รอง run ใน sql server ได้ผลถูกต้อง แสดงว่ามีปัญหาที่เขียน sqlใน vb.netหรือป่าว TT_TT หนูก้อว่าหนูเขียนไม่ผิดนี่นา

sql run
Date : 2010-02-27 13:03:33 By : ladyjupz
 


 

No. 9



โพสกระทู้ ( 24 )
บทความ ( 0 )



สถานะออฟไลน์


โอ้ พี่ๆคะหนูเจอมันแล้ววว คือหนูลองเปลี่ยน
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
 


 

No. 10



โพสกระทู้ ( 1,603 )
บทความ ( 1 )



สถานะออฟไลน์


ยินดีด้วยค่ะ เดวมาจัดลูกตาๆให้หายตาเหล่ด้วยกันค่ะ ^^
Date : 2010-02-27 13:30:28 By : blurEye
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : ถามเกี่ยวกับ Group by ใน sql server ค่ะ สวัสดีค่ะ คือต้องการ หาผลรวมของปริมาณเลือดแต่ละหมู่ค่ะ
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: นำเข้าสินค้าจากจีน, Taobao, เฟอร์นิเจอร์, ของพรีเมี่ยม, ร่ม, ปากกา, power bank, แฟลชไดร์ฟ, กระบอกน้ำ

Load balance : Server 01
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2024 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่