--你的SQL,看不出有什么问题 SELECT a.* , c.Price , b.LevelName FROM v_proginfo a LEFT JOIN LevelInfo b ON a.ProgLevel = b.Level_ID INNER JOIN v_pro_price c ON a.Prog_ID = c.Prog_ID WHERE a.Prog_ID = 32387/* 跟32387没关系吧. ^_^ smallint -2^15 (-32,768) 到 2^15-1 (32,767) int -2^31 (-2,147,483,648) 到 2^31-1 (2,147,483,647) */ SELECT * FROM v_proginfo a, v_pro_price c WHERE a.Prog_ID = b.Prog_ID AND a.Prog_ID > 32387 --有就有,没有就没有
看看SELECT * v_pro_price where Prog_ID>32387
SELECT
a.* ,
c.Price ,
b.LevelName
FROM v_proginfo a
LEFT JOIN LevelInfo b
ON a.ProgLevel = b.Level_ID
INNER JOIN v_pro_price c
ON a.Prog_ID = c.Prog_ID
WHERE a.Prog_ID = 32387/*
跟32387没关系吧. ^_^
smallint -2^15 (-32,768) 到 2^15-1 (32,767)
int -2^31 (-2,147,483,648) 到 2^31-1 (2,147,483,647)
*/
SELECT *
FROM v_proginfo a, v_pro_price c
WHERE a.Prog_ID = b.Prog_ID
AND a.Prog_ID > 32387
--有就有,没有就没有
看看这个!应该不是SQL问题,如果是就是你的字段设置问题。1。
SQL中的Int数据类型的存储空间是4个字节(32位)。从 -2^31 (-2,147,483,648) 到 2^31 - 1 (2,147,483,647) 的整型数据。
SQL中的SamllInt数据类型的存储空间是2个字节(16位)。从 -2^15 (-32,768) 到 2^15 - 1 (32,767) 的整型数据。
在远古的数据库中有个小BUG,ProgInfo和Prog_Server的Prog_ID是Int,而GamePrice中的Prog_ID是SamllInt,这里需要把GamePrice中的Prog_ID改成Int。
2。
在ASP语言中CInt()是16位的,CLog()才是32位的。所以ASP在处理大于32,767的Prog_ID时会报溢出。这不是SQL的错,是ASP的错,把对应的Cint()改成CLng()就可以了,或者干脆不要这个CInt()。