我最近遇到一个技术的问题,就是mysql语句中可以用@变量名来使用变量,但在使用的过程中会出现问题,例如select @a:=1,@b:=2,@c:=@a+@b;
这样的语句执行是没有问题的,因为他们属于同步运算。
可是在我的程序中需要用group by sum()一些数据然后在用变量来进行计算,那么sum属于后运算函数,所以在我计算的变量值会推后一行,因为变量的作用域的问题,请大家帮忙解决一下,可以用什么其他手段来解决此问题。
例如:
SELECT intBaseTablePK, dtDHDate, @a := sum( strMoney ) AS a, @b := sum( strTotalMoney ) AS b, @c := sum( strRemainMoney ) AS c,(
@d := @a + @b + @c 
) AS d
FROM tblStock_Sheet
WHERE intStorePK =1119
AND intModulePK = 'E0020'
AND dtDHDate
BETWEEN '2007-11-01 00:00:00'
AND '2007-12-01 23:59:59'
GROUP BY intBaseTablePK
这样用变量计算出来的数据得到的是下面的数据,请大家帮忙看看 10 2007-11-05 0 0 0 NULL 
 16 2007-11-01 20191 0 20191 0 
 18 2007-11-01 0 0 0 40382 
得出的数据是这样的~~第一行的数据变成null,因为sum()的后运算所以,得到的变量都在下一行显示。
有没有办法把他们变成一行显示??