2010-04-02 93 views
0

下面的圖像已被上傳到展示什麼,我試圖做什麼,我想出來的需要幫助中書寫的查詢

任何一個可以幫我寫查詢我想 得到的結果請檢查以下內容

SELECT * 
FROM KPT 
WHERE PROPERTY_ID IN (SELECT PROPERTY_ID 
         FROM khata_header 
         WHERE DIV_ID = 3 
          and RECORD_STATUS = 0) 
    and CHALLAN_NO > 42646 

以上是查詢我寫,我已經得到了以下結果集

ID  CHALLAN_NO  PROPERTY_ID  SITE_NO    TOTAL_AMOUNT  
----- ------------- -------------- ------------------- --------------- 
1242 42757   3103010141  296     595    
1243 63743   3204190257  483     594    
1244 63743   3204190257  483     594    
1334 43395   3217010223  1088     576    
1421 524210   3320050416  (null)    (null)   
1422 524210   3320050416  (null)    (null)   
1560 564355   3320021408  (null)    (null)   
1870 516292   3320040420  (null)    (null)   
1940 68357   3217100104  139     1153    
1941 68357   3217100104  139     1153    
2002 56256   3320100733  511     4430    
2003 56256   3320100733  511     4430    
2004 66488   3217040869  293     3094    
2005 66488   3217040869  293     3094    
2016 64571   3217040374  (null)    (null)   
2036 523122   3320020352  (null)    (null)   
2039 65682   3217040021  273     919  

在我的結果集,我得到該物業ID重複,因爲有multilple項,

  1. 我怎麼能知道有多少人被重複
  2. 什麼是那些資產ID已經重複2次以上。

小回地面大約表是

  1. PROPERTY_ID是FK在KPT
  2. PROPERTY_ID在KH
  3. 的PK

我寫一個子查詢得到的結果,所以我卡住我不知道如何得到我的結果請幫助

+0

@OMG,你能幫我一下,我該如何編輯內容,比如你做了什麼。 – gmhk 2010-04-02 06:20:55

回答

0

要確定哪些屬性ID已被重複,以下未經測試的查詢應該可以工作。

SELECT PROPERTY_ID, COUNT(PROPERTY_ID) AS PROPERTY_COUNT 
FROM KPT 
WHERE PROPERTY_ID IN (SELECT PROPERTY_ID 
         FROM khata_header 
         WHERE DIV_ID = 3 
         AND RECORD_STATUS = 0) 
AND CHALLAN_NO > 42646 
GROUP BY PROPERTY_ID 

要確定哪些屬性id已經被重複超過兩次,下列HAVING子句添加到上述查詢的末尾。

HAVING COUNT(PROPERTY_ID) > 2 
+0

感謝您的查詢 – gmhk 2010-04-02 09:32:26

1

這是否讓你更接近?

SELECT 
    PROPERTY_ID, COUNT(*) 
FROM 
    KPT 
WHERE 
    PROPERTY_ID IN (SELECT PROPERTY_ID 
         FROM khata_header 
         WHERE DIV_ID = 3 AND RECORD_STATUS = 0) 
    AND CHALLAN_NO > 42646 
GROUP BY 
    PROPERTY_ID 
HAVING 
    COUNT(*) >= 2 
+0

@Julius感謝您的幫助 – gmhk 2010-04-02 09:32:43

0

也許你可以試試()這個

的PROPERTY_ID重複計數可以通過計數來實現,一組通過,獲得PROPERTY_ID的重複2次以上,你可以創建第一個選入臨時表並在臨時表上創建2個選擇,最後刪除臨時表。

--create臨時表

select PROPERTY_ID , count(*) as hitcount 
into #tmp 
from kpt 
WHERE PROPERTY_ID IN (SELECT PROPERTY_ID 
         FROM khata_header 
         WHERE DIV_ID = 3 
          and RECORD_STATUS = 0) 
    and CHALLAN_NO > 42646 
group by PROPERTY_ID 

- 問題1:

select count(*) from #tmp where hitcount > 1 

--and

UNION ALL

- 問題2:

select * from #tmp where hitcount > 2 

drop table #tmp 

希望這會回答你的問題。

祝你好運