2014-05-17 23 views
0

表名:TEST與組SELECT子句通過表達

//TEST 
A#  NAME  
------------ 
1  CHIRS 
2  MAY 
3  JOHN 

//APPLIES 
A#  P# 
--------------------- 
1   HELLO 
2   YES 
1   HAPPY 

當過我使用此查詢:

SELECT DISTINCT * FROM TEST t INNER JOIN APPLIES ap 
on t.A#=ap.A# WHERE count(*)>1; 

我想顯示顯示中僅發現1個或多個記錄的適用其中TEST。 A#=#APPLEIS.A

預期輸出:

A#  NAME 
------------- 
1  CHIRS 
+0

「給錯誤」 ---我們需要去猜測什麼樣的錯誤是? 'GROUP BY t。*'---你想用這個表達什麼? **不是**表達式 – zerkms

+0

用樣本數據顯示您的期望輸出。 – bgs

+0

1.使用GROUP BY而不是DISTINCT; 2.使用'HAVING'而不是'WHERE'來過濾彙總後 –

回答

1

您應該在代碼中單獨指定列名稱。試試這個:

SELECT t.A#, t.NAME, t.ADDRESS, t.ACOMMENT 
FROM TEST t INNER JOIN APPLIES ap 
on t.A#=ap.A# GROUP BY t.A#, t.NAME, t.ADDRESS, t.ACOMMENT; 
+0

我試過了,這個彙總是LONG類型的。我不能分組。 – user3553846

+0

所以你應該從sql中刪除它,不是嗎? – Guneli

+0

是的沒有。檢查我更新的代碼 – user3553846

0

分組由所有字段是基本相同,使用distinct

SELECT  DISTINCT * 
FROM  test t 
INNER JOIN applies ap ON t.A#=ap.A#; 
+0

但它表示,這不是一個單一的組功能。怎麼樣? – user3553846