【发布时间】:2012-11-23 14:31:53
【问题描述】:
我有两个表,其中的数据行不相等,我需要通过“第 3 方”列关联这些表。此第 3 方列是两个表的 DATETIME 主键。
这是表格
|XKey |XColumn |
|-------------------------------|
|2012-01-00 |0.17
|2012-02-00 |0.24
|2012-03-00 |0.33
|2012-04-00 |0.41
|--------------------------------
Y TABLE
=======
|YKey |YColumn |
|-------------------------------|
|2012-01-01 |0.21
|2012-01-15 |0.12
|2012-02-01 |0.26
|2012-02-15 |0.27
|2012-03-01 |0.14
|2012-03-15 |0.11
|2012-04-01 |0.74
|2012-04-15 |0.66
|2012-05-01 |0.14
|--------------------------------
y表中的值应该与x表中对应的xkey值小于或等于相应ykey值的值相关。
这个准备好的语句只是产生空值!我可以忽略什么?
SET @sql_run = CONCAT(
'SET @correl = (SELECT (1/(?-1))*SUM(((a.'
,XColumn
,' - ?)/?)*((b.'
,YColumn
,' - ?)/?)) FROM '
,XTable
,' a JOIN '
,YTable
,' b ON a.'
,XKey
,' <= b.'
,YKey
,' GROUP BY a.'
,XKey
,', b.'
,YKey
,' HAVING COUNT(a.'
,XKey
,') < 2 ORDER BY a.'
,XKey
,', b.'
,YKey
,')'
);
PREPARE statement_run FROM @sql_run ;
EXECUTE statement_run USING @num, @x_avg, @x_std, @y_avg, @y_std ;
DEALLOCATE PREPARE statement_run ;
调整 xtable 中的日期值后,现在出现错误“子查询返回多行”
【问题讨论】:
-
传递了哪些输入变量? - 你能展示一个完整的带有变量的sql语句吗?
-
这些是在行数、平均值和标准差之前设置的输入变量......现在得到的错误是子查询返回多个值
-
@num, @x_avg, @x_std, @y_avg, @y_std
标签: mysql