是否可以从列中选择行?
我有一个带有日期时间的表,需要/想要从存储业务费用的表中选择/加入,这取决于选择结果的年份。
由于我需要每年存储的值,我认为这个表设计会是最好的,但也许我完全不在...
使用一个简单的示例表:
SELECT
@var:=DATE_FORMAT(`datetime`,"%Y"),
CASE WHEN 1=1 THEN @sp8:=someINT END as sp8,
CASE WHEN 1=2 THEN @sp24:=someINT END as sp24,
t2.sp8_@var,
t2.sp24_@var
FROM t1
LEFT JOIN t2 ON (t1.Loc=t2.Loc) WHERE 1;
t1 t2
+--+----------+---+ +---+---------+--------+---------+
|id|datetime |Loc| +Loc+sp24_2017+sp8_2017+sp24_2018+
+--+----------+---+ +---+---------+--------+---------+
|1 |2017-03-01|DE | +DE +24 +12 +24 +
|2 |2016-03-01|GB | +GB +47 +23 +48 +
+--+----------+---+ +---+---------+--------+---------+