首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >选择进阶

选择进阶
EN

Stack Overflow用户
提问于 2010-07-17 18:30:09
回答 2查看 914关注 0票数 2

我在我的数据库中有许多表,我用下面的代码收集计算值,并希望将这些值插入到其他表中。我使用SELECT INTO方法,但是数据库告诉我“不正确的语法靠近关键字到行.”。我相信有些东西我错过了,但不知道在哪里。密码看上去没问题。这是我的密码。任何帮助都将不胜感激。

代码语言:javascript
运行
复制
SELECT (second.[cdate]=@enddate) AS 'Date', first.[machine_no] AS 'No', 
tbl_machines.[manufacturer] As 'Manufacturer',
tbl_machines.[type] As 'Machine Type',tbl_machines.[game_name] AS 'Game Name',
tbl_machines.[accounting_denomination] AS 'Denom', 
(second.[turnover])-(first.[turnover]) AS 'Turnover',
(second.[total win])-(first.[total win]) AS 'Total win',
(second.[games played])-(first.[games played]) AS 'Games Played',
(second.[Bill in])-(first.[Bill in]) AS 'Bill In', 
(second.[credit in])-(first.[credit in]) AS 'Credit IN', 
(second.[cancel credit])-(first.[cancel credit]) AS 'Cancel Credit',
tbl_rate.[euro] AS 'euro rate',
tbl_rate.[dollar] AS 'dollar rate' 
INTO  tbl_daily
FROM tbl.meter first,tbl.machines,tbl_rate  
INNER JOIN tbl_meter second ON first.[Machine_No] = second.[Machine_No] 
AND 
tbl_machines.[local_no]=first.[machine_no]
WHERE first.[cDate] = @StartDate 
AND second.[cDate] = @EndDate 
AND tbl_rate.[cdate]=@enddate;

好的,我使用了INSERT语法,一切都进行得很顺利,但是现在我对日期时间有了问题。当我使用以下sql命令时,我得到了错误,它说“不能将数据类型位转换为日期时间”,我尝试了Martin的cast方法,但是它是一样的。

我的代码是

代码语言:javascript
运行
复制
INSERT INTO tbl_daily SELECT tbl_machines.[ID] AS 'ID', (second.[cdate]=@enddate) AS 'CDate', first.[machine_no] AS 'No',
 tbl_machines.[manufacturer] As 'Manufacturer',
tbl_machines.[type] As 'MachineType',
tbl_machines.[game_name] AS 'GameName',
tbl_machines.[accounting_denomination] AS 'Denom', 
(second.[turnover]-first.[turnover]) AS 'Turnover',
(second.[total win]-first.[total win]) AS 'Totalwin',
 (second.[games played]-first.[games played]) AS 'GamesPlayed', 
(second.[credit in]-first.[credit in]) AS 'CreditIN',
 (second.[Bill in]-first.[Bill in]) AS 'BillIn', 
 (second.[cancel credit]-first.[cancel credit]) AS 'CancelCredit',
tbl_rate.[euro] AS 'eurorate',
tbl_rate.[dollar] AS 'dollarrate' 
 FROM tbl_meter first,tbl_machines,tbl_rate 
INNER JOIN tbl_meter second ON first.[Machine_No] = second.[Machine_No] AND tbl_machines.[local_no]=first.[machine_no] 
WHERE first.[cDate] = @StartDate AND second.[cDate] = @EndDate AND tbl_rate.[cdate]=@enddate;
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-07-17 18:31:12

注意:下面的答案是假设Server编写的。当收到VistaDB澄清时,我删除了它,但是在阅读上又删除了

VistaDB可以看作是的一个子集.Server支持我们所有的语法,但不是相反

在这种情况下,我假设可以安全地说,如果它在Server中是无效的,那么它在VistaDB中也是无效的?这是Server中的无效语法。

代码语言:javascript
运行
复制
SELECT (second.[cdate]=@enddate) AS 'Date'

这段代码的目的是什么?这意味着它是布尔型的吗?(即当列与变量匹配时返回true )。如果是的话,在Server中,最接近这一点的就是以下内容。

代码语言:javascript
运行
复制
SELECT CAST((CASE WHEN second.[cdate]=@enddate THEN 1 ELSE 0 END) AS BIT) AS 'Date'

编辑了我看到的评论中的

代码语言:javascript
运行
复制
SELECT @enddate AS 'Date'

此外,我在这里没有看到SELECT ... INTO 列为VistaDB命令。它肯定支持吗?

票数 0
EN

Stack Overflow用户

发布于 2010-07-17 18:38:52

如果您正在使用Server,则更多的是将Insert Into插入到动态创建的表中。这是一种做事情的好方法,但如果表已经存在,那么我将使用以下方法:

代码语言:javascript
运行
复制
INSERT INTO table (column1, columns2, ...)
SELECT
  Value1,
  Value2,
  ...
FROM ...
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3272740

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档