0

「サードパーティ」列を介して関連付ける必要があるデータの行が等しくない 2 つのテーブルがあります。このサードパーティの列は、両方のテーブルの 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 テーブルの値は、xkey 値がそれぞれの ykey 値以下である x テーブルの対応する値に関連付ける必要があります。

この準備済みステートメントは単に null を返します! 私は何を見落としているでしょうか?

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 の日付値を調整すると、「サブクエリが複数の行を返します」というエラーが表示されるようになりました

4

1 に答える 1

0

XKey の日付の値が無効です。0 ではなく、月の最初に設定してみてください。

于 2012-11-23T14:42:00.920 に答える