ผมเขียนเว็บด้วยภาษา ASP + Ms SQL Server 2005 จุดที่ error คือตรงนี้ครับ
Code
Sql="Select SUM(CAST(m_j8 AS int)) As IncentiveTeam FROM IncentiveOffice Where ("&MyTeam&" age_id="&age_id&") and m_a1 Like '"&Check_M_Old&"%'"
Set rs=Server.CreateObject("ADODB.Recordset")
rs.Open sql, Conn, 1,3
error ออกมาแบบนี้ครับ
Code
Error Type:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E07)
[Microsoft][ODBC SQL Server Driver][SQL Server]Conversion failed when converting the nvarchar value '603.29' to data type int.
/anc_SQL/Profile.asp, line 47
โดยที่ field m_j8 เป็น type nvarchar แต่พอ sum แล้วมันไม่ได้ เพราะมันไม่ใช่ตัวเลข ผมเลยลองแปลงดูโดยเขียนเป็น
SUM(CAST(m_j8 AS int))
error ก็เลยออกมาแบบด้านบนครับ "Conversion failed when converting the nvarchar value '603.29' to data type int."
SELECT CASE WHEN isnumeric(m_j8) = 1 THEN CONVERT(float, m_j8) END AS IncentiveTeam
FROM IncentiveOffice Where ("&MyTeam&" age_id="&age_id&") and m_a1 Like '"&Check_M_Old&"%'"
2. นำไป sum ... สรุปแล้ว จะำได้
Code
SELECT SUM(IncentiveTeam) AS IncentiveTeam
FROM ( SELECT CASE WHEN isnumeric(m_j8) = 1 THEN CONVERT(float, m_j8) END AS IncentiveTeam
FROM IncentiveOffice Where ("&MyTeam&" age_id="&age_id&") and m_a1 Like '"&Check_M_Old&"%'" )
AS derivedtbl_1