【发布时间】:2014-09-16 12:21:38
【问题描述】:
我正在 phpmyadmin mysql 上开发一个查询,我打算在其中显示“CurrentBalance”列的运行余额
此栏的流动余额取决于活动何时是存款(+),提款(-),投注(-),支付(+)
我想的是这个
SELECT CONCAT("Trans ID ",`TransactionID`) AS ID,
`DateTime`,`Type` AS Activity, `Amount`, 0 AS Payout,
CASE WHEN (SELECT Activity) = "deposit" THEN `Amount`+ `playerdb`.`CurrentBalance`
ELSE CASE WHEN (SELECT Activity) = "withdraw" OR (SELECT Activity) = "bet"
THEN CASE WHEN (SELECT Payout) >0 THEN (SELECT Payout) + `playerdb`.`CurrentBalance`
ELSE `Amount` - `playerdb`.`CurrentBalance` END END END AS CurrentBalance
FROM `transactiondb` LEFT JOIN `playerdb` ON
`transactiondb`.`PlayerID` = `playerdb`.`PlayerID`
WHERE `transactiondb`.`PlayerID`=10078 UNION ALL
SELECT CONCAT("Bet ID ",`BetID`),`DateTime`,"Bet", `BetAmount`,`Payout`, (SELECT CurrentBalance) FROM `betdb` WHERE `PlayerID`=10078 ORDER BY `DateTime`
想法 http://postimg.org/image/x3fsxq2qz/
在第二个 SELECT 语句上执行 (SELECT CurrentBalance) 会产生此错误
1054 - “字段列表”中的未知列“CurrentBalance”
我需要获取上一条记录的 CurrentBalance,所以我尝试使用别名
这可能吗?
【问题讨论】:
-
最好能提供样本数据和想要的结果。
-
您好,请在此链接查看屏幕截图postimg.org/image/x3fsxq2qz
-
案例(选择活动)
-
这似乎是重用别名的方法 我在这里学到了 stackoverflow.com/questions/2077475/…
标签: mysql phpmyadmin