看看我的sql 问题 (0分)

  • 主题发起人 主题发起人 Herb
  • 开始时间 开始时间
H

Herb

Unregistered / Unconfirmed
GUEST, unregistred user!
1:CREATE TABLE A(ITEM_NO VARCHAR(9),ITEM_NAME VARCHAR(100))
INSERT INTO A
SELECT ITEM_NO,ITEM_NAME
FROM ZXLC.dbo.DBLC.ItemTable
SELECT * FROM A
DROP TABLE A
运行上面的语句以后出现
服务器: 消息 7411,级别 16,状态 1,行 2
Server 'ZXLC' is not configured for DATA ACCESS.
我已经注册了ZXLC服务器啊!
以上语句在LC服务器上运行的

2:给客户报价的时候,我们给的是整箱的价格,如何计算单一的价格?
例如:数据库:单号,产品号,数量,单位,单价
C001 23135 1267 箱 62.15(每箱数量是117,单价指的是每箱的单价)
其实,这117是117个不同的配件组成的一个23135,我需要计算每个配件的金额,如何用语句写出来?
为了表明配件的分配,有表结构:产品号,配件号,配件数量,ID编号
23135 23135-A 10 1
23135 23135-B 21 2
23135 23135-C 21 3
23135 23135-D 14 4
23135 23135-E 9 5
23135 23135-F 7 6
23135 23135-G 7 7
23135 23135-H 11 8
23135 23135-I 9 9
23135 23135-J 8 10
因为每箱单价除以配件数量,有余数,因此在计算各个配件金额以后,
汇总的金额总数不等于定单中的1267*62.15,请问有什么方法可以解决?给出SQL语句?
谢谢
 
CREATE TABLE A(ITEM_NO VARCHAR(9),ITEM_NAME VARCHAR(100))
INSERT a
SELECT ITEM_NO,ITEM_NAME
FROM ZXLC.dbo.DBLC.ItemTable
SELECT * FROM A
DROP TABLE A
 
hgood:我运行了你的语句以后出现下面的提示:
服务器: 消息 7411,级别 16,状态 1,行 2
Server 'ZXLC' is not configured for DATA ACCESS.
 
CREATE TABLE A(ITEM_NO VARCHAR(9),ITEM_NAME VARCHAR(100))
INSERT a
SELECT ITEM_NO,ITEM_NAME
FROM openDataSource('SQLOLEDB','DATA SOURCE=ZXLC;USER ID=SA').dblc.dbo.itemTable
SELECT * FROM A
DROP TABLE A

不清楚的地方看这个

SELECT *
FROM OPENDATASOURCE(
'SQLOLEDB',
'Data Source=ServerName;User ID=MyUID;Password=MyPass'
).Northwind.dbo.Categories

 
tks hgood,第一个问题已经ok,请去下面的地方拿分
http://www.delphibbs.com/delphibbs/dispq.asp?lid=2077033
第二个问题可否帮忙解决?(我自己已经解决了,可惜效率不是很好)
 
CREATE TABLE A(ITEM_NO VARCHAR(9),ITEM_NAME VARCHAR(100))
INSERT a
SELECT ITEM_NO,ITEM_NAME
FROM openDataSource('SQLOLEDB','DATA SOURCE=ZXLC;USER ID=SA').dblc.dbo.itemTable
SELECT * FROM A
DROP TABLE A

如果我要更新的是远程数据库,上面的应该怎么写呢?(如何修改下面的语句)
1:CREATE TABLE ZXLC.dbo.DBLC.A(ITEM_NO VARCHAR(9),ITEM_NAME VARCHAR(100))
INSERT INTO A
SELECT ITEM_NO,ITEM_NAME
FROM ItemTable
SELECT * FROM A
DROP TABLE A

 
不知道你要怎么更新啊?用update?你上面好像不是更新吧!
 
to hgood:
如果我要更新的是远程数据库,上面的应该怎么写呢?(如何修改下面的语句)
在远程数据库建立一个表如ZXLC.dbo.DBLC.A(ITEM_NO VARCHAR(9),ITEM_NAME VARCHAR(100))
然后查询本地数据INSERT到远程数据库。

1:CREATE TABLE ZXLC.dbo.DBLC.A(ITEM_NO VARCHAR(9),ITEM_NAME VARCHAR(100))
INSERT INTO A
SELECT ITEM_NO,ITEM_NAME
FROM ItemTable(本地表查询,INSERT到远程表A)
SELECT * FROM A
DROP TABLE A
(解决了另外开贴接分,谢谢!)
 
这个问题我还没有找到好的方法!不过有一个变向的方法可以解决!
在远程数据据里建立一个存储过程,如:
Create Procedure GetData @SorurceServerName Varchar(30),@tabName Varchar(30)
as
Declare @sSql NVarchar(2000)
--创建表
Set @sSql='CREATE TABLE ZXLC.dbo.DBLC.A(ITEM_NO VARCHAR(9),ITEM_NAME ARCHAR(100))'
Exec (@sSql);
--取得远程数据并插入本表里
Set @sSql='Insert a( ITEM_NO,ITEM_NAME) Select ITEM_NO,ITEM_NAME
FROM openDataSource('SQLOLEDB','DATA SOURCE=@SorurceServerName;USER ID=SA').dblc.dbo.'+@tabName)'
Exec (@sSql)

然后你在本调用远程过程就可以了!
 
后退
顶部