MySQL:SELECT @var:= dummy FROM t1 JOIN @var

时间:2017-10-02 11:54:04

标签: mysql dynamic

是否可以从列中选择行?

我有一个带有日期时间的表,需要/想要从存储业务费用的表中选择/加入,这取决于选择结果的年份。

由于我需要每年存储的值,我认为这个表设计会是最好的,但也许我完全不在...

使用一个简单的示例表:

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       +
+--+----------+---+   +---+---------+--------+---------+

0 个答案:

没有答案