EXCEL查询对比后导入数据库的问题,比较麻烦,出200分求解。

guguda 2003-07-04 02:57:38
数据库为SQL SERVER,有以下几个表:

表1
DEST_ID NAME

表2
DEST_ID ALNAME


表3
DEST_ID NAME FEE MEMO


将要导入的EXCEL表(格式固定)
NAME FEE

问题是:

NO.1导入:
if 表2.ALNAME=EXCEL导入表.NAME and 表2.DEST_ID=表1.DEST_ID
则表3.DEST_ID导入表1.DEST_ID,表3.NAME导入表1.NAME,表3.FEE导入EXCEL表里的FEE
NO.2对比:
如果表3里的FEE里边已经有数据,在导入时把EXCEL表里的FEE和表3里的FEE的对据进行对比后导入,如果数大了在MEMO中写变大,小了写减小。
...全文
49 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
guguda 2003-07-08
  • 打赏
  • 举报
回复
up
guguda 2003-07-04
  • 打赏
  • 举报
回复
up

有没有写在DELPHI里的?
firetoucher 2003-07-04
  • 打赏
  • 举报
回复
可以,你按我写的select的格式写就行了,由于不知道你的
.xls格式,所特地用临时表,以便你修改
guguda 2003-07-04
  • 打赏
  • 举报
回复
有没有直接在导入时比对的?就是不用临时表
guguda 2003-07-04
  • 打赏
  • 举报
回复
我先试试看吧
firetoucher 2003-07-04
  • 打赏
  • 举报
回复
declear @name varchar(20)
declear @id varchar(20)

SELECT * into #EXCEL导入表
FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
'Data Source="c:\Finance\account.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')

if exists(select @name = 表2.ALNAME, @id = 表2.DEST_ID from 表2,#EXCEL导入表,表1 where 表2.ALNAME=#EXCEL导入表.NAME and 表2.DEST_ID=表1.DEST_ID )
begin
delete * from 表3
where 表3.DEST_ID = @id and 表3.NAME = @name

Insert into 表3
(DEST_ID ,NAME,FEE)
SELECT @id,@name,FEE
FROM #EXCEL导入表
end
guguda 2003-07-04
  • 打赏
  • 举报
回复
if 表2.ALNAME=EXCEL导入表.NAME and 表2.DEST_ID=表1.DEST_ID
//是判断是否存在,如果存在就进行导入
则表3.DEST_ID导入表1.DEST_ID,表3.NAME导入表1.NAME,表3.FEE导入EXCEL表里的FEE
//实际上是update,比如我以前导入过一次了,FEE里边有值为0.8,这次再导入时如还是0.8直接UPDATE,如本次导入的数变了,成了0.7了,则是在字段MEMO里注明说减小了。

还有什么不明白的吗?
firetoucher 2003-07-04
  • 打赏
  • 举报
回复
if 表2.ALNAME=EXCEL导入表.NAME and 表2.DEST_ID=表1.DEST_ID
…………………………………………这里是判断是否存在还是只是关联
则表3.DEST_ID导入表1.DEST_ID,表3.NAME导入表1.NAME,表3.FEE导入EXCEL表里的FEE
^^^^^^^^^这里导入 是什么意思?插入?修改?
guguda 2003-07-04
  • 打赏
  • 举报
回复
那里没明白?
firetoucher 2003-07-04
  • 打赏
  • 举报
回复
没有太看懂你的意思,能再解释一下?
不过你可以先用一个
Insert into #临时表
SELECT *
FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
'Data Source="c:\Finance\account.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')
将excel的导入到临时表,然后用sql操作
Means_pan 2003-07-04
  • 打赏
  • 举报
回复
路过up
pzoon 2003-07-04
  • 打赏
  • 举报
回复
up

5,379

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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