首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

急求解决办法

2012-07-04 
急求解决方法小弟初学,现写了一条语句用来查询:Select a.BulkCode,a.BulkBatchNo, as LotNo,a.Processin

急求解决方法
小弟初学,现写了一条语句用来查询:
Select a.BulkCode,a.BulkBatchNo,'' as LotNo,a.ProcessingDate,a.InspectionNo,
b.PH_Result,
b.Viso_Result
From TBKInspectionHeader a Left outer Join
  (
  select a.Inspectionno,a.PH_Result,b.Viso_Result 
  from  
  (Select InspectionNo,Result as PH_Result
  From TBKInspectionLines
  Where Parameter like 'Viscosity%') a 
inner join
(Select InspectionNo,Result as Viso_Result
  From TBKInspectionLines
  Where Parameter like 'Viscosity%' ) b
on a.InspectionNo=b.InspectionNo  
where (a.PH_Result is not null or b.Viso_Result is not Null)
and a.InspectionNo = 'BK20120203001'


  )b on a.InspectionNo=b.InspectionNo
Where a.Status=1
And a.BulkCode = '766735/70'
and a.BulkBatchNo = 'B2012020017'


查询结果如下:
766735/70B20120200172012-02-03 00:00:00.000BK2012020300138.00000038.000000
766735/70B20120200172012-02-03 00:00:00.000BK2012020300138.00000035.000000
766735/70B20120200172012-02-03 00:00:00.000BK2012020300135.00000038.000000
766735/70B20120200172012-02-03 00:00:00.000BK2012020300135.00000035.000000

很明显重复了,然后又试着改了语句,如下:
Select a.BulkCode,a.BulkBatchNo,'' as LOrealLotNo,a.ProcessingDate as PackingDay,a.InspectionNo,b.Result as PH_Result,c.Result as Viso_Result
From TBKInspectionHeader a 
  Left outer Join
  ( Select InspectionNo,Result
  From TBKInspectionLines
  Where Parameter like 'PH%'
  ) b on a.InspectionNo=b.InspectionNo
  Left Outer Join 
  (
  Select InspectionNo,Result
  From TBKInspectionLines
  Where Parameter like 'Viscosity%'
  )c on a.InspectionNo=c.InspectionNo
Where a.Status='1'
And (b.Result is not null or c.Result is not Null)

查询结果还是重复了:
查询结果如下:
766735/70B20120200172012-02-03 00:00:00.000BK2012020300138.00000038.000000
766735/70B20120200172012-02-03 00:00:00.000BK2012020300138.00000035.000000
766735/70B20120200172012-02-03 00:00:00.000BK2012020300135.00000038.000000
766735/70B20120200172012-02-03 00:00:00.000BK2012020300135.00000035.000000

请问有什么好的方法来避免重复吗?


[解决办法]

SQL code
Select DISTINCT a.BulkCode,a.BulkBatchNo,'' as LOrealLotNo,a.ProcessingDate as PackingDay,a.InspectionNo,b.Result as PH_Result,c.Result as Viso_Result,b.Parameter as PH_Parameter,c.Parameter as Viso_ParameterFrom TBKInspectionHeader a   Left outer Join  ( Select InspectionNo,Result,Parameter  From TBKInspectionLines  Where Parameter like 'PH%'  ) b on a.InspectionNo=b.InspectionNo  Left Outer Join   (  Select InspectionNo,Result,Parameter  From TBKInspectionLines  Where Parameter like 'Viscosity%'  )c on a.InspectionNo=c.InspectionNoWhere a.Status='1'And (b.Result is not null or c.Result is not Null)And a.BulkCode = '766735/70'and a.BulkBatchNo = 'B2012020017'[color=#FF0000]and RIGHT(b.Parameter,LEN(b.Parameter) - CHARINDEX('-',b.Parameter)) =RIGHT(c.Parameter,LEN(c.Parameter) - CHARINDEX('-',c.Parameter))[/color] 

热点排行