请教一条INSERT INTO SELECT的语法用法

zpc38368330 2013-04-02 11:08:56
csSql.Format("INSERT INTO 当月使用记录(日期,月任务,件号,当月使用量,当月总价格) \
SELECT 日期=#%s#,月任务=\'%s\',TMPVIEW2.件号,TMPVIEW2.当月使用量,\
TMPVIEW2.当月使用量*价格.单价 \
FROM TMPVIEW2,价格 \
WHERE TMPVIEW2.件号=价格.件号",csToday,csYear);

最近为单位做一个数据库,小生对SQL的语句不是很精通,也就大约看了几页书,赶驴上架就开始写代码,结果发现用VC写一个数据库程序貌似比别的语言如VB等不是一般的麻烦啊~
上一条语句的功能本来是这样的
我CREATE VIEW 一个新的视图 TMPVIEW2 ,这个视图里包含 件号,当月使用数量 两个字段
我现在想在 表:当月使用记录 里批量插入一组记录,如上,记录的字段是这些
(日期,月任务,件号,当月使用量,当月总价格)
日期和月任务 是我自己赋的值 日期=#%s#,月任务=\'%s\', //cs.format(“。。。”,csToday,csYear)
然后依次是 TMPVIEW2.件号,TMPVIEW2.当月使用量,TMPVIEW2.当月使用量*价格.单价
对应 件号,当月使用量,当月总价格
表总共用了3个表,最后插入的表:当月使用记录 和相关的表:TMPVIEW2(这个是自创视图) 价格
值:日期,月任务 自己定义,然后依次插入TMPVIEW2的两个字段,并且根据 表:价格 里的与 TMPVIEW2.件号 相同的“价格.件号”记录,来得出最后的“当月总价格”,即“当月总价格=TMPVIEW2.当月使用量*价格.单价“ 最后自动批量插入”当月使用记录“里。
结果这条语句对高手来说,一看就知道错误百出,肯定执行不会通过~~~~
望哪位大神能把详细的语句给整一套贴出来,不需要过多的解释,只要能执行通过的语句就行了,我可以自己百度下关键字,找找解释,当然能稍稍解释下,也是不盛感激的- -
本想用VC的代码一条一条的INSERT ,不过太麻烦了,为安全等因素要做不少判断。总感觉应该可以通过SQL语句执行批量插入的操作。
罗嗦了半天也不知道表达清楚了没有。。。小学作文总是不及格。只好多给点分,希望那位神能多读几遍,当我是小学生的智商考虑下我说的。。。。
...全文
111 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
「已注销」 2013-04-03
  • 打赏
  • 举报
回复
另外,视图是不可能插入数据的,- -#
「已注销」 2013-04-03
  • 打赏
  • 举报
回复
建议用ADO进行数据库操作。 多表插入没问题的,只是在插入之前需要用到事务。 BeginTrans();//开始事务 CommitTrans ();//提交事务 RollbackTrans ();//回滚,只要一个表插入失败就算全部失败,就回滚。 其他的就是你根据业务一张表一张表的插数据了。
kyotrue 2013-04-03
  • 打赏
  • 举报
回复
看看INSERT的用法。。。
ok1234567 2013-04-03
  • 打赏
  • 举报
回复
查询 sql server 的联机帮助 INSERT INTO 表名(字段定义...) SELECT 字段或常量...[与上面的一一对应] FROM 来源表名 WHERE 筛选条件 例子 INSERT INT table1(iid,ddate,str,iint) SELECT iid,'2013.04.05','字符常量',iint FROM table2 WHERE iid>100
zpc38368330 2013-04-03
  • 打赏
  • 举报
回复
我这条命令不是将记录插入视图里的。是插入 当月使用记录 这个已存在的表里的, 我是用的ADO的组件操作的数据库。事物回滚的功能我暂时用不上。 继续等大神指教。
zpc38368330 2013-04-02
  • 打赏
  • 举报
回复
怎么看我自己的帖子,貌似我越解释越黑呢~~~ 哎~幸亏我不好写网络小说,要不真会被人骂死~~

4,011

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 数据库
社区管理员
  • 数据库
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧