ยินดีต้อนรับคุณ, บุคคลทั่วไป กรุณา เข้าสู่ระบบ หรือ ลงทะเบียน

เข้าสู่ระบบด้วยชื่อผู้ใช้ รหัสผ่าน และระยะเวลาในเซสชั่น

ThaiSEOBoard.comพัฒนาเว็บไซต์Programmingทำการ Sum field ที่ datatype เป็น nvarchar แล้ว error ครับ (SQL SERVER 2005)
หน้า: [1]   ลงล่าง
พิมพ์
ผู้เขียน หัวข้อ: ทำการ Sum field ที่ datatype เป็น nvarchar แล้ว error ครับ (SQL SERVER 2005)  (อ่าน 1706 ครั้ง)
0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้
karn4851
Newbie
*

พลังน้ำใจ: 0
ออฟไลน์ ออฟไลน์

กระทู้: 31



ดูรายละเอียด เว็บไซต์
« เมื่อ: 12 ตุลาคม 2011, 11:18:18 »

คำถามตามหัวข้อครับ error ที่ขึ้น เป็นแบบนี้ครับ


Microsoft OLE DB Provider for ODBC Drivers error '80040e14'

[Microsoft][ODBC SQL Server Driver][SQL Server]Incorrect syntax near ')'.

/anc_SQL/test_sum_sql_nvarchar.asp, line 7


โค้ตที่เขียน เป็น ASP เขียนดังนี้ครับ

<%
Set Conn = Server.Createobject("ADODB.Connection")
Conn.Open "Driver={SQL Server};Server=localhost;Database=anc;UID=sa;PWD=1234;"

Sql="select sum(b_sum) from (select convert(int, replace(m_j8,',','')) as b_sum from ClassAgeMotor) "
Set rs=Server.CreateObject ("ADODB.Recordset")
rs.Open sql, Conn, 1,3

response.Write rs("b_sum")
%>

รบกวนช่วยแนะนำวิธีแก้ไขหน่อยครับ
บันทึกการเข้า
bonshington
ก๊วนเสียว
*

พลังน้ำใจ: 47
ออฟไลน์ ออฟไลน์

กระทู้: 376



ดูรายละเอียด
« ตอบ #1 เมื่อ: 12 ตุลาคม 2011, 12:49:35 »

select sum(convert(int, m_j8)) from ClassAgeMotor

ของเดิมมัน error เพราะ ) หลังสุดแต่ไม่มี table name
« แก้ไขครั้งสุดท้าย: 12 ตุลาคม 2011, 18:16:17 โดย bonshington » บันทึกการเข้า
seowizard
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 102
ออฟไลน์ ออฟไลน์

กระทู้: 1,119



ดูรายละเอียด เว็บไซต์
« ตอบ #2 เมื่อ: 12 ตุลาคม 2011, 13:04:37 »

คำถามตามหัวข้อครับ error ที่ขึ้น เป็นแบบนี้ครับ


Microsoft OLE DB Provider for ODBC Drivers error '80040e14'

[Microsoft][ODBC SQL Server Driver][SQL Server]Incorrect syntax near ')'.

/anc_SQL/test_sum_sql_nvarchar.asp, line 7


โค้ตที่เขียน เป็น ASP เขียนดังนี้ครับ

<%
Set Conn = Server.Createobject("ADODB.Connection")
Conn.Open "Driver={SQL Server};Server=localhost;Database=anc;UID=sa;PWD=1234;"

Sql="select sum(b_sum) from (select convert(int, replace(m_j8,',','')) as b_sum from ClassAgeMotor) "
Set rs=Server.CreateObject ("ADODB.Recordset")
rs.Open sql, Conn, 1,3

response.Write rs("b_sum")
%>

รบกวนช่วยแนะนำวิธีแก้ไขหน่อยครับ

แก้ครับ ดูแล้ววงเล็บน่าจะถูกแล้วหรือเปล่า ผิดตรงไหนน้ออ
« แก้ไขครั้งสุดท้าย: 12 ตุลาคม 2011, 13:17:07 โดย seowizard » บันทึกการเข้า
ohmohm
เจ้าพ่อบอร์ดเสียว
*

พลังน้ำใจ: 170
ออฟไลน์ ออฟไลน์

กระทู้: 3,098



ดูรายละเอียด เว็บไซต์
« ตอบ #3 เมื่อ: 12 ตุลาคม 2011, 13:26:26 »

ไม่เคยลองเองนะครับ ไม่แน่ใจว่า ASP ต้องมี escaped charactor ด้วยหรือเปล่า ถ้าอยู่ใน ""

ผมว่า อาจต้องเพิ่ม alias อีกนะครับ ต่อท้าย เป็น
Sql="select sum(b_sum) from (select convert(int, replace(m_j8,',','')) as b_sum from ClassAgeMotor) x "

ว่าแต่ ทำแบบไม่ต้องมี alias เลย ได้ไหมเอ่ย
Sql="select sum(convert(int, replace(m_j8,',',''))) from ClassAgeMotor"

อีกคำแนะนำนะครับ ดูเหมือนว่าที่จะเอา , (comma) ออก เพราะเป็นจำนวนเงินใช่ไหมครับ ถ้างั้น convert ( money , m_j8 ) อาจจะดีกว่า โดยเฉพาะถ้าเงินจำนวนหลักมากๆ จนเกิน integer 2^31
บันทึกการเข้า
หน้า: [1]   ขึ้นบน
พิมพ์