0
私はセカンダリテーブルにデータを挿入しようとしており、ローリングクローズ値を計算して新しいテーブルに挿入するにはサブクエリが必要です。INSERTサブクエリのMySQL構文エラー
が- いずれかの値の数と一致しない列の数、または
- 構文エラーが
私が先テーブルという検証しています:私は、クエリをしようとすると、私は2つのエラーのいずれかを取得していますinsert文で参照されるすべてのカラムを持ちます。どんな助けもありがとう。
INSERT INTO `Historical`.`Secondary`(
`Record`,
`Symbol`,
`Date`,
`Open`,
`High`,
`Low`,
`Close`,
`Volume`,
`Rolling_Close`)
SELECT
T1.Date, T1.Symbol, T1.Close,
(
SELECT AVG(T2.Close)
FROM Historical.Primary T2
WHERE T1.Symbol = T2.Symbol
AND T2.Date BETWEEN DATE_SUB(T1.Date, INTERVAL 30 DAY)
AND DATE_SUB(T1.Date, INTERVAL 1 DAY)) AS Rolling_Close
FROM Historical.Primary T1
GROUP BY T1.Date,
T1.Symbol;
テーブルHistorical.Secondaryは、次の列があります、
Rolling_Close
録音、記号、日付、始値、高値、低、閉じる、ボリュームテーブルHistorical.Primaryは以下がありますがコラム:
録音、記号、日付、始値、高値、低、閉じる、ボリューム
1この結果を生成します - あなたは、挿入のために定義されているようにフィールドの同じ番号を選択する必要が(と彼らは同じである必要注文と正しいタイプ)、2 - あなたはからぶら下がっている。 3 - ブラケットが見つからないおそらく他のサンプルデータを公開できますか? –
1. 9つの列のそれぞれが、Historical.Secondaryで使用可能な宛先列を持っていることを検証し、正しい順序で名前が一致するようにしました。 2. FROMが何を意味するのか分かりません。それを理解するのを助けて、解決するためにどのような措置を講じることができますか?クエリは実行されないので、すべての列に対してNULLを取得しているため、公開するサンプルデータの種類はわかりません。これまでの助けてくれてありがとう。根本的な原因を助けるために他に何ができるのか教えてください。私はかなり新しいので、私は忍耐を感謝します。 – Hogateer
9列を挿入していますが、4つしか選択していません。セカンダリについては混乱しています。シンボル内に日付があるようですが、クエリはシンボル内にあります。 –