读书人

SQL 笛卡尔积 去重复记录,该怎么处理

发布时间: 2013-01-05 15:20:40 作者: rapoo

SQL 笛卡尔积 去重复记录



distinct
[解决办法]
以下为估计猜测结果,呵呵
楼上说的好,三张表的大致结构给一下,大家就会有思路了,呵呵
Uniteng_head项目表
WJ_Record项目相关文件表
WJ_Record项目相关图纸表

项目会对应多个文件,这样关联到图纸表就会有笛卡尔积,所以帮你加个条件

select
count(distinct Uniteng_head.projectid)项目,
count(Uniteng_head.uniteng_id)单位工程,
count(AJ_Record.aj_id)案卷,
count(WJ_Record.wj_id)文件,
sum(WJ_Record.sl)图纸
from Uniteng_head
inner join AJ_Record on AJ_Record.Unitengid=Uniteng_head.UnitEng_id
inner join WJ_Record on WJ_Record.aj_id=AJ_Record.aj_id and Uniteng_head.aj_id=AJ_Record.aj_id
[解决办法]

[解决办法]
SQL 笛卡尔积 去重复记录,该怎么处理SQL 笛卡尔积 去重复记录,该怎么处理
[解决办法]
Uniteng_head项目AJ_Record
AJ_Record对多WJ_Record

是这个逻辑么?

[解决办法]
1、要么设置主键,没有主键的表很痛苦,也不合逻辑
2、试试先用子查询查询出一部分的值,然后再拼起来,头疼,不想造数据。

读书人网 >SQL Server

热点推荐