sqlserver数据库中根据已知表结构创建一个视图解决方法
sqlserver数据库中根据已知表结构创建一个视图
有一个表A,其结构如下:
id(int) fid(int) value(varchar) int_id
1 1 2 1
2 2 3 2
3 2 23 1
4 1 52 2
5 3 12 1
6 3 32 2
7 4 231 1
8 4 56 2
9 1 32 3
10 2 74 3
11 3 37 3
12 4 61 3
现在根据表A创建一个视图B,视图B里面包含A的所有数据,但是其中当int_id=3时 value的值为fid相同的int_id=2和int_id=1的value值的差值,除此以外视图B中还需增加int_id为4的记录,其value值为fid相等时int_id=1和int_id=2的value值的和。
请问用sql语句怎么表示
------解决方案--------------------
有一个表A,其结构如下:
id(int) fid(int) value(varchar) int_id
1 1 2 1
2 2 3 2
3 2 23 1
4 1 52 2
5 3 12 1
6 3 32 2
7 4 231 1
8 4 56 2
9 1 32 3
10 2 74 3
11 3 37 3
12 4 61 3
现在根据表A创建一个视图B,视图B里面包含A的所有数据,但是其中当int_id=3时 value的值为fid相同的int_id=2和int_id=1的value值的差值,除此以外视图B中还需增加int_id为4的记录,其value值为fid相等时int_id=1和int_id=2的value值的和。
请问用sql语句怎么表示
------解决方案--------------------
----------------------------
-- Author :TravyLee(物是人非事事休,欲语泪先流!)
-- Date :2012-11-23 10:01:15
-- Version:
-- Microsoft SQL Server 2008 (RTM) - 10.0.1600.22 (Intel X86)
-- Jul 9 2008 14:43:34
-- Copyright (c) 1988-2008 Microsoft Corporation
-- Developer Edition on Windows NT 6.1 <X86> (Build 7601: Service Pack 1)
--
----------------------------
--> 测试数据:[test]
if object_id('[test]') is not null drop table [test]
go
create table [test]
(
[id] int,
[fid] int,
[value] int,
[int_id] int
)
insert [test]
select 1,1,2,1 union all
select 2,2,3,2 union all
select 3,2,23,1 union all