2016-08-22 52 views
0

我不知道什麼是錯的這個查詢,它返回過多行(非唯一值)什麼是錯誤的,我查詢

SELECT tt.* 
FROM Arkusz1 tt 
INNER JOIN 
(
    SELECT ONTSERIALNUMBER, MAX(ONTBEUP) AS MaxBEUP 
    FROM Arkusz1 
    GROUP BY ONTSERIALNUMBER 
) groupedtt 
    ON tt.ONTSERIALNUMBER = groupedtt.ONTSERIALNUMBER AND 
     tt.ONTBEUP = groupedtt.MaxBEUP 

儘管子查詢正常工作:

SELECT ONTSERIALNUMBER, 
     MAX(ONTBEUP) AS MaxBEUP 
FROM Arkusz1 
GROUP BY ONTSERIALNUMBER 
+1

闡述你的意思是'返回太多rows' ... –

+0

我的意思是不作爲子查詢 –

+0

乍一看返回獨特價值是什麼:是ONTBEUP對於每個ONTSERIALNUMBER都是唯一的? –

回答

0

如果您的查詢返回似乎重複的記錄,這只是意味着多個記錄可以對應給定的序列號和最大的beup值。這裏的速戰速決是隻使用SELECT DISTINCT

SELECT DISTINCT tt.* 
FROM Arkusz1 tt 
INNER JOIN 
(
    SELECT ONTSERIALNUMBER, MAX(ONTBEUP) AS MaxBEUP 
    FROM Arkusz1 
    GROUP BY ONTSERIALNUMBER 
) groupedtt 
    ON tt.ONTSERIALNUMBER = groupedtt.ONTSERIALNUMBER AND 
     tt.ONTBEUP = groupedtt.MaxBEUP 
+0

不只是,只有ONTSERIALNUMBER應該是唯一的,所以我得到每個SERIALNUMBER的最大(ONTBEUP)值,但我還需要功率值(第三列)有 –