我有两张表,一张包含付款周期,另一张包含需要支付的费用,具体取决于每年、每月等。
我以这种方式查询数据库:
SELECT
L.UserID,
U.Username,
L.CostPerCycle,
CT.CycleType,
CASE L.CycleTypeID
WHEN L.CycleTypeID = 1 THEN L.CostPerCycle * 12
WHEN L.CycleTypeID = 2 THEN L.CostPerCycle * 3
WHEN L.CycleTypeID = 3 THEN L.CostPerCycle * 2
WHEN L.CycleTypeID = 4 THEN L.CostPerCycle
WHEN L.CycleTypeID = 5 THEN L.CostPerCycle
END AS AnnualCost
FROM
Links L
LEFT JOIN Users U ON L.UserID = U.UserID
LEFT JOIN CycleTypes CT ON L.CycleTypeID = CT.CycleTypeID
WHERE
L.CycleTypeID <> 6;
问题是 MySQL 返回的是 NULL 值而不是乘法的结果,我不确定为什么。
我注意到只有第一个条件正在评估,但我不确定其他条件发生了什么。
换句话说:
如果有一条记录,CycleTypeID = 1
则 MySQL 将乘以CostPerCycle
12。但是,如果 CycleTypeID 与第一个条件不同,那么 MySQL 会做一些事情,我不确定它会做什么,这基本上会“忽略”我的其余条件。
希望有足够的信息可以为我指明正确的方向!
谢谢!