17,377
社区成员
发帖
与我相关
我的任务
分享
Select Distinct Rcxc.Inspection_Id As Inspection_Id, Rcxc.*, Hist.Item_Id
From t_Inspection_Hist Rcxc Left Join
(select distinct(Inspection_Hist_Id), Item_Id from t_Inspection_Condition_Hist) Hist
On Hist.Inspection_Hist_Id = Rcxc.Id
Where Rcxc.Inspection_Date >= To_Date('2012-09-23', 'yyyy-MM-dd') And Rcxc.Inspection_Date <= To_Date('2013-09-23', 'yyyy-MM-dd')
Select Distinct Rcxc.Inspection_Id As Inspection_Id, Rcxc.*, Hist.Item_Id
From t_Inspection_Hist Rcxc Left Join
(select Inspection_Hist_Id, Item_Id, count(distinct Inspection_Hist_Id) from t_Inspection_Condition_Hist group by Inspection_Hist_Id, Item_Id) Hist
On Hist.Inspection_Hist_Id = Rcxc.Id
Where Rcxc.Inspection_Date >= To_Date('2012-09-23', 'yyyy-MM-dd') And Rcxc.Inspection_Date <= To_Date('2013-09-23', 'yyyy-MM-dd')
Select Distinct Rcxc.Inspection_Id As Inspection_Id, Rcxc.*, Hist.Item_Id
From t_Inspection_Hist Rcxc
Left Join (
select distinct Inspection_Hist_Id, max(Item_Id)over(partition by Inspection_Hist_Id) from t_Inspection_Condition_Hist
) Hist
On Hist.Inspection_Hist_Id = Rcxc.Id
Where Rcxc.Inspection_Date >= To_Date('2012-09-23', 'yyyy-MM-dd')
And Rcxc.Inspection_Date <= To_Date('2013-09-23', 'yyyy-MM-dd')
Select Distinct Rcxc.Inspection_Id As Inspection_Id, Rcxc.*, Hist.Item_Id
From t_Inspection_Hist Rcxc
Left Join
(select distinct Inspection_Hist_Id,Item_Id from t_Inspection_Condition_Hist)Hist
On Hist.Inspection_Hist_Id = Rcxc.Id
Where Rcxc.Inspection_Date >= To_Date('2012-09-23', 'yyyy-MM-dd')
And Rcxc.Inspection_Date <= To_Date('2013-09-23', 'yyyy-MM-dd')
[/quote]
这位仁兄,还是不行,查出来还是779条,没有减少,还是谢谢[/quote]
看看你的查询,在t_Inspection_Condition_Hist表中
用到了Hist.Item_Id和Hist.Inspection_Hist_Id,你Inspection_Hist_一样的值但IdItem_Id会不同啊[/quote]
其实是这样的:
可以这样理解,就是一条数据有多重情况的Item_Id,也就是说Item_Id的值有多个,所以存在t_Inspection_Condition_Hist表中的时候前面的字段都是一样的,只有Item_Id的值不同,然后关联查询的时候那些重复的也满足查询条件所以全部查询出来了。
我想的是只需要一个Item_Id的值,那么数据就不会重复了
Select Distinct Rcxc.Inspection_Id As Inspection_Id, Rcxc.*, Hist.Item_Id
From t_Inspection_Hist Rcxc
Left Join
(select distinct Inspection_Hist_Id,Item_Id from t_Inspection_Condition_Hist)Hist
On Hist.Inspection_Hist_Id = Rcxc.Id
Where Rcxc.Inspection_Date >= To_Date('2012-09-23', 'yyyy-MM-dd')
And Rcxc.Inspection_Date <= To_Date('2013-09-23', 'yyyy-MM-dd')
[/quote]
这位仁兄,还是不行,查出来还是779条,没有减少,还是谢谢[/quote]
看看你的查询,在t_Inspection_Condition_Hist表中
用到了Hist.Item_Id和Hist.Inspection_Hist_Id,你Inspection_Hist_一样的值但IdItem_Id会不同啊
Select Distinct Rcxc.Inspection_Id As Inspection_Id, Rcxc.*, Hist.Item_Id
From t_Inspection_Hist Rcxc
Left Join
(select distinct Inspection_Hist_Id,Item_Id from t_Inspection_Condition_Hist)Hist
On Hist.Inspection_Hist_Id = Rcxc.Id
Where Rcxc.Inspection_Date >= To_Date('2012-09-23', 'yyyy-MM-dd')
And Rcxc.Inspection_Date <= To_Date('2013-09-23', 'yyyy-MM-dd')
[/quote]
这位仁兄,还是不行,查出来还是779条,没有减少,还是谢谢
Select Distinct Rcxc.Inspection_Id As Inspection_Id, Rcxc.*, Hist.Item_Id
From t_Inspection_Hist Rcxc
Left Join
(select distinct Inspection_Hist_Id,Item_Id from t_Inspection_Condition_Hist)Hist
On Hist.Inspection_Hist_Id = Rcxc.Id
Where Rcxc.Inspection_Date >= To_Date('2012-09-23', 'yyyy-MM-dd')
And Rcxc.Inspection_Date <= To_Date('2013-09-23', 'yyyy-MM-dd')