如何在一行中抑制重复记录?

时间:2015-02-12 03:04:01

标签: mysql sql

在这种情况下,我有两张桌子连在一起

表格为:dprset1

我有这段代码:

SELECT distinct s.s1T, s.s1W, s.s1L, s.s1Reject, s.s1Quantity, s.s1Volume
FROM set1 s left join dpr d ON s.DPno = d.ProdNo
Where s.DPno = '20150205'
AND s.s1T = d.Thickness 
AND s.s1W = d.Width
AND s.s1L = d.Length;

这是我的Cyrstal报告中此查询的结果

示例:我只想在set1

中显示数量和体积
Quantity    Volume
----------------------
  23        54
  0         0
  23        54
  0         0

在这种情况下,我的记录是重复的..我该如何解决这个问题?

我尝试使用此代码来抑制重复" {set2.Quantity})= previous({set2.Quantity})"但它没有用!

我只期待这个结果:

Quantity    Volume
----------------------
  23        54
  0         0

1 个答案:

答案 0 :(得分:0)

通常,您可以使用具有排名功能的CTE

;WITH C AS(
    SELECT RANK() OVER (PARTITION BY Quantity, Volume ORDER BY Quantity, Volume) AS Rnk
           ,Quantity
           ,Volume
    FROM yourTable -- Put your joins here
)
SELECT Quantity, Volume FROM C WHERE Rnk = 1

根据重复值,您PARTITION BYORDER BY的字段正在更改

有关here

的更多信息