我已经试过了,下面的SQL语句在企业管理器和查询分析器都可以执行,但是用应用程序就不可以,不知道是什么原因?INSERT INTO SRBBZY(NianYueDay,NianYue,Nian,JieSuanRen) Select isnull(a.日期,b.日期) as 日期,isnull(a.月份,b.月份) as 月份,isnull(a.年份,b.年份) as 年份,isnull(a.结算人,b.结算人) as 结算人 From(Select JSNianYueDay as 日期,JieSuanRen as 结算人,Max(NianYue) AS 月份,Max(Nian) as 年份 From (select * from openrowset('SQLOLEDB','192.168.1.11';'sa';'samima',MyTable.dbo.uuu2) union Select * From uuu2_2 ) c WHERE JSNianYueDay>=20060912 And JSNianYueDay<=20060915 Group by JSNianYueDay,JieSuanRen )a FULL JOIN (Select NianYueDay as 日期,LuRuRen as 结算人,Max(NianYue) AS 月份,Max(Nian) as 年份,SUM(case when YuCunFei!=0 And JieSuanRenZH='' then YuCunFei else 0 end) as 预交金额 From (select * from openrowset('SQLOLEDB','192.168.1.11';'sa';'samima',MyTable.dbo.uuu2) union Select * From uuu2_2 ) d WHERE NianYueDay>=20060912 And NianYueDay<=20060915 And YuCunFei!=0 Group by NianYueDay,LuRuRen )b On a.日期=b.日期 AND a.结算人=b.结算人 Order by 日期
连接服务器名.数据库名.dbo.表名这两种连接方式是相同的为4个子段
可以考虑使用链接服务器来进行数据的操作--创建链接服务器
EXEC sp_addlinkedserver '链接名','','MSDASQL',NULL,NULL,'DRIVER={SQL Server};SERVER=链接服务器名;UID=sa;PWD=密码;'
EXEC sp_addlinkedsrvlogin '链接名', 'false', NULL, 'sa', '密码'
--执行语句
insert into 链接名.数据库名.dbo.表名 select * from 表名
--删除链接服务器
exec sp_droplinkedsrvlogin '链接名',null
exec sp_dropserver '链接名'
(select * from openrowset
('SQLOLEDB','192.168.1.11';'sa';'samima',MyTable.dbo.uuu2)
union Select * From uuu2_2 )c1
WHERE JSNianYueDay>=20060912 And
JSNianYueDay<=20060915 Group by JSNianYueDay,JieSuanRen)a
加多一次select * from
下面的也是等同,加多一次
用union 这样的连接 加多一次才能统计出来的数据才能准确。
用union all 这样的执行速度快一点