以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  [求助]SQL server 视图  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=130231)

--  作者:狐说八道
--  发布时间:2019/1/16 13:57:00
--  [求助]SQL server 视图
数据库中有个视图,包括A,B,C三张表
假如这个视图有100行数据,但是加载到foxtable中只有91行数据,
其中有10行数据的主键是一样的(就是说第一列是A表的主键,第二列是B表的主键,
第三列是C表的主键 ,然后这10行中,第一列的数据一样,第二列的数据一样,第三列的数据一样)
请问是不是因为foxtable认为是重复数据过滤掉了,怎么才能避免被过滤掉??

--  作者:有点甜
--  发布时间:2019/1/16 14:44:00
--  

视图那里,合成这样的主键,比如

 

select 表A._Identify + 表B._Identify*10000 + 表C._Identify*100000000 As _Identify, 其余sql语句


--  作者:有点甜
--  发布时间:2019/1/16 14:45:00
--  

如果是sqlserver数据库,可以用Row_Number函数处理,类似

 

http://www.foxtable.com/webhelp/scr/2721.htm

 


--  作者:有点甜
--  发布时间:2019/1/16 14:45:00
--  
或者试试,在视图那里,把你的各个主键列,都select出来试试。
--  作者:狐说八道
--  发布时间:2019/1/16 15:52:00
--  
1、主键不是自增长的,是类似10001-001的字符型编码
2、服务器的数据库是2000版的,没有这个函数
3、所有表的主键都select出来了,还是不行

--  作者:有点甜
--  发布时间:2019/1/16 16:28:00
--  
那试试
 
select convart(varchar, 表A.主键) + convart(varchar, 表B.主键) + convart(varchar, 表C.主键), 其余sql语句

--  作者:狐说八道
--  发布时间:2019/1/17 9:32:00
--  
还是不行
--  作者:有点甜
--  发布时间:2019/1/17 9:33:00
--  
以下是引用狐说八道在2019/1/17 9:32:00的发言:
还是不行

 

数据库发上来测试