我不是SQL查詢的熟練編碼人員,所以我需要一些幫助。
這是我的嘗試:
由批處理文件執行的動態SQL聲明
DECLARE @ID AS varchar(max) = 'SELECT ID FROM Price WHERE ID = ''123456''';
DECLARE @VALUE as varchar(max) = 'SELECT TOP 1 Value FROM PriceData WHERE PriceID=''@ID' ORDER BY UpdatedOn DESC';
INSERT INTO PriceData VALUES (@ID,CAST(GETDATE() AS DATE),@VALUE,GETDATE())
所以essicently我有兩個表的價格和PRICEDATA。 PRICE有我想要的ID'123456'的PriceID,所以我將decalre作爲@ID,然後VALUE是來自PriceData的ID'123456'的最新值,所以我按降序排列並獲得第一個元素,然後我使用今天的新值插入PriceData。顯然這是行不通的我試着在EXEC(@SQL)附近玩這個腳本,但是那也行不通。我在這裏做錯了什麼?
PS:@ID必須是BIGINT和@VALUE必須是浮動,但由於我宣佈SQL語句,我不得不讓他們VARCHAR的時刻
PSS:也爲Im保存該SQL腳本作爲SQL文件並在批處理文件中運行此命令
sqlcmd -S「db」-i「C:\ MYSQL.sql」
我刪除了'mysql'標記。據我所知,這個問題是關於Microsoft SQL Server的,它與MySQL無關。 – 2014-11-24 18:13:44
我刪除了'batch-file'標籤。該標籤旨在用於Windows控制檯的'.bat'腳本。 – rojo 2014-11-24 18:37:23