1

私はMSsqlに慣れているので、mySqlを使用すると、構文エラーが発生し、速度が低下します。私は次のものを持っています:

declare @expensesSum DOUBLE
select @expensesSum = sum(expenseAmount) from bondsaverdb.expenses
insert into bondsaverdb.expenses
select '6','Extracash',(income - @expensesSum)  from bondsaverdb.income where userName ='Dean'

私が得ているエラーは言う:

@expensesSumを宣言する近くの構文エラー

私が変数を宣言している方法でなければなりませんか?

前もって感謝します!

4

2 に答える 2

1

MySQL は、変数を必要とせず (または許可しているようです) declare、すべてのオブジェクト、含まれる変数を文字列として扱うため、この方法で入力することはできません。とにかく、これはうまくいくはずです:

SET @expensesSum = (SELECT SUM(expenseAmount) FROM bondsaverdb.expenses);
INSERT INTO
   bondsaverdb.expenses
SELECT
   '6', 'Extracash', (income - @expensesSum)
FROM
   bondsaverdb.income
WHERE
   userName = 'Dean'

それが何のためにあるのかもわかりません'6'..それが自動インクリメントIDの場合は、INSERT完全に省略して(そして書き込み先の他の列を指定して)、そのままにしておく必要がありNULLます。

于 2012-05-02T13:50:21.853 に答える
1

MySQL は SQL Server とは大きく異なります。通常、変数を宣言しません

SET @expensesSum = (select @expensesSum = sum(expenseAmount) from bondsaverdb.expenses);
insert into bondsaverdb.expenses
select '6','Extracash',(income - @expensesSum)  from bondsaverdb.income where userName ='Dean';
于 2012-05-02T13:50:56.090 に答える