表:T1 T2 T3 VT1
| a b a b a b a b
|------------ ------------- ------------ ----------
| a1 10 a1 9 a4 12 a1 9
| a2 6 a2 6 a5 17 a2 6
| a2 4 a3 2 a6 13 a3 2
| a1 23 ... ... a4 12
| a3 4 a5 17
| a2 21 a6 13
| ... ...
注:
T2中b只能存放0~9,T3中的b只能存放10~19
VT1是视图(假设为:create view vt1 as select * from t2 union all select * from t3)
问题:
1 怎样得到如下结果 (只用t1表)
1) 只显示 有重复的记录
2) 只显示 无重复的记录
3) 只显示重复记录的第一条,并加一尾列 显示有n条这样的记录
4) 得如下结果(将a中重复的记录只显示一条,把b值累加其后显示)
a b
-----------------
a1 10,23
a2 6,4,21
a3 4
...
2 T2,T3和VT1要怎样建?才能达到这种效果:通过只对 VT1进行操作(insert),自动将数据操作(insert)入对应的表。如:insert vt1(a,b) values(a7,4)
结果为将插入T2, insert vt1(a,b) values(a8,14) 结果为将插入T3.
小弟SQL语句不精,请各道友出手.(sql server)
视图可以插入操作????
你的视图是多个表的,只可以查询吧。
你到底要从t1中得到还是vt1中得到???
1.这样应该可以
1)SELECT *
FROM t1
WHERE (a IN
(SELECT a
FROM t1
GROUP BY a
HAVING COUNT(*) > 1))
up
gz