一下是该表建立脚本
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[AFN0DF21]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[AFN0DF21]
GOCREATE TABLE [dbo].[AFN0DF21] (
[ADDR] [varchar] (8) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[PN] [numeric](2, 0) NOT NULL ,
[M0] [datetime] NOT NULL ,
[M1] [numeric](3, 0) NULL ,
[M2] [numeric](8, 4) NULL
) ON [PRIMARY]
GO一下是视图的建立脚本
SELECT dbo.AFN0DF21.ADDR, dbo.AFN0DF21.PN, dbo.AFN0DF21.M0,
dbo.AFN0DF21.M2 AS M1, AFN0DF21_1.M2 AS M4, AFN0DF21_2.M2,
AFN0DF21_3.M2 AS M3
FROM dbo.AFN0DF21 INNER JOIN
dbo.AFN0DF21 AFN0DF21_1 ON dbo.AFN0DF21.ADDR = AFN0DF21_1.ADDR AND
dbo.AFN0DF21.PN = AFN0DF21_1.PN AND
dbo.AFN0DF21.M0 = AFN0DF21_1.M0 INNER JOIN
dbo.AFN0DF21 AFN0DF21_2 ON dbo.AFN0DF21.ADDR = AFN0DF21_2.ADDR AND
dbo.AFN0DF21.PN = AFN0DF21_2.PN AND
dbo.AFN0DF21.M0 = AFN0DF21_2.M0 INNER JOIN
dbo.AFN0DF21 AFN0DF21_3 ON dbo.AFN0DF21.ADDR = AFN0DF21_3.ADDR AND
dbo.AFN0DF21.PN = AFN0DF21_3.PN AND
dbo.AFN0DF21.M0 = AFN0DF21_3.M0
WHERE (dbo.AFN0DF21.M1 = 0) AND (AFN0DF21_1.M1 = 1) AND (AFN0DF21_2.M1 = 2) AND
(AFN0DF21_3.M1 = 3)
一下是该设计含义
表如下时间 类型 数据
2005-6 费率一 11.1
2005-6 费率二 22.2
2005-6 费率三 33.3
2005-6 费率四 44.4
2005-6 费率五 55.5我要得到的结果是时间 费率一 费率二 费率三 费率四 费率五
2005-6 11.1 22.2 33.3 44.4 55.5
以上已经实现查询部分,但当通过视图更新、增加一条的时候提示“[microsoft][odbc sql server driver][sql server]在结果列的列表中多次出现列名‘m2’”请高手帮忙解决。
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[AFN0DF21]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[AFN0DF21]
GOCREATE TABLE [dbo].[AFN0DF21] (
[ADDR] [varchar] (8) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[PN] [numeric](2, 0) NOT NULL ,
[M0] [datetime] NOT NULL ,
[M1] [numeric](3, 0) NULL ,
[M2] [numeric](8, 4) NULL
) ON [PRIMARY]
GO一下是视图的建立脚本
SELECT dbo.AFN0DF21.ADDR, dbo.AFN0DF21.PN, dbo.AFN0DF21.M0,
dbo.AFN0DF21.M2 AS M1, AFN0DF21_1.M2 AS M4, AFN0DF21_2.M2,
AFN0DF21_3.M2 AS M3
FROM dbo.AFN0DF21 INNER JOIN
dbo.AFN0DF21 AFN0DF21_1 ON dbo.AFN0DF21.ADDR = AFN0DF21_1.ADDR AND
dbo.AFN0DF21.PN = AFN0DF21_1.PN AND
dbo.AFN0DF21.M0 = AFN0DF21_1.M0 INNER JOIN
dbo.AFN0DF21 AFN0DF21_2 ON dbo.AFN0DF21.ADDR = AFN0DF21_2.ADDR AND
dbo.AFN0DF21.PN = AFN0DF21_2.PN AND
dbo.AFN0DF21.M0 = AFN0DF21_2.M0 INNER JOIN
dbo.AFN0DF21 AFN0DF21_3 ON dbo.AFN0DF21.ADDR = AFN0DF21_3.ADDR AND
dbo.AFN0DF21.PN = AFN0DF21_3.PN AND
dbo.AFN0DF21.M0 = AFN0DF21_3.M0
WHERE (dbo.AFN0DF21.M1 = 0) AND (AFN0DF21_1.M1 = 1) AND (AFN0DF21_2.M1 = 2) AND
(AFN0DF21_3.M1 = 3)
一下是该设计含义
表如下时间 类型 数据
2005-6 费率一 11.1
2005-6 费率二 22.2
2005-6 费率三 33.3
2005-6 费率四 44.4
2005-6 费率五 55.5我要得到的结果是时间 费率一 费率二 费率三 费率四 费率五
2005-6 11.1 22.2 33.3 44.4 55.5
以上已经实现查询部分,但当通过视图更新、增加一条的时候提示“[microsoft][odbc sql server driver][sql server]在结果列的列表中多次出现列名‘m2’”请高手帮忙解决。
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货