Mysql SQL:无效操作:列“0”&引用;位置“U更新”&引用;不存在于t1、t2、未命名的_连接中;
我正在尝试将两列相乘Mysql SQL:无效操作:列“0”&引用;位置“U更新”&引用;不存在于t1、t2、未命名的_连接中;,mysql,sql,Mysql,Sql,我正在尝试将两列相乘t1.sales*1/t2。更改两个表table1和table2 表1 CREATE TABLE IF NOT EXISTS table1 ( sales VARCHAR(100) ENCODE lzo ,location VARCHAR(100) ENCODE lzo ,tax VARCHAR(100) ENCODE lzo ) 表2 CREATE TABLE IF NOT EXISTS table2 ( change_tim
t1.sales*1/t2。更改两个表table1
和table2
表1
CREATE TABLE IF NOT EXISTS table1
(
sales VARCHAR(100) ENCODE lzo
,location VARCHAR(100) ENCODE lzo
,tax VARCHAR(100) ENCODE lzo
)
表2
CREATE TABLE IF NOT EXISTS table2
(
change_time_1 DOUBLE PRECISION ENCODE RAW
,change_time_2 DOUBLE PRECISION ENCODE RAW
)
这就是我想做的
select t1.sales, "location_update" =
(CASE
WHEN t1.location = 'America' THEN convert(float,t1.sales )
WHEN t1.location = 'Britain' THEN convert(float,t1.sales ) * 1/t2.change_time_2
--ELSE 'Over $1000'
END)
,t1.tax,t2.*
from table1 t1
left join table2 t2
on 1=1;
我得到了这个错误
Invalid operation: column "location_update" does not exist in t1, t2, unnamed_join;
我的乘法计算错了吗
如何修复此问题?对于mysql,必须使用别名:
Select t1.sales,
(CASE
WHEN t1.location = 'America' THEN convert(t1.sales, float )
WHEN t1.location = 'Britain' THEN convert(t1.sales, float ) * 1/t2.change_time_2
END) as location_update
,t1.tax,t2.*
from table1 t1
left join table2 t2
on 1=1;
注意:函数使用不正确,正确的语法是CONVERT(表达式、类型)
您似乎在使用SQL Server语法为大小写
表达式指定别名。这在MySQL中不起作用。还有,为什么要在两个表之间进行交叉连接,这似乎毫无意义?这两个表是如何相互关联的?您试图将CASE表达式的结果与不存在的列进行比较-显然,这不起作用。这些表没有任何共同点或任何关系,这就是为什么我尝试使用交叉连接并将t1的一列与t2的另一列相乘。没有交叉连接,我该怎么做?另外,如果CASE表达式的结果不能被带到不存在的列,那么如何实现多应用程序使用别名。。t1.销售、案例。。以“位置更新”结尾,…