2010-04-02 5 views
0

L'image suivante ont été téléchargés pour montrer ce que je suis en train de faire et ce que je voulais sortiront besoin d'aide dans l'écriture de requêtes

peut me aider à écrire la requête pour obtenir les résultats que je veux S'il vous plaît vérifiez les points suivants

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 

Ce qui précède est la requête que j'ai écrit et je l'ai obtenu le résultat suivant mis

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  

Dans mon resultset, j'obtiens le PropertyId répété, car il y a des entrées multilple,

  1. Comment puis-je savoir combien ont été répétées
  2. Quels sont les Id propriété qui ont répété plus de 2 fois.

Petit retour au sol sur les tables sont

  1. PROPERTY_ID est le FK dans le KPT
  2. PROPERTY_ID est le PK dans KH

Je suis en train d'écrire un sous-requête pour obtenir le résultat , donc je suis coincé Je ne sais pas comment obtenir mes résultats S'il vous plaît aider

+0

@OMG, pouvez-vous s'il vous plaît m'aider comment éditer le contenu comme vous l'avez fait. – gmhk

Répondre

0

Pour déterminer quels ID de propriété ont été répétés, la requête suivante non testée doit fonctionner.

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 

Pour déterminer les ids propriété ont été répétées plus de deux fois, ajoutez la clause HAVING suivante à la fin de la requête ci-dessus.

HAVING COUNT(PROPERTY_ID) > 2 
+0

Merci pour votre question – gmhk

1

Est-ce que cela vous obtenez plus près?

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 Merci pour votre aide – gmhk

0

Peut-être que vous pouvez essayer cette

Le nombre de répétitions de PROPERTY_ID peut être atteint par un nombre() et un groupe par, pour obtenir plus de 2 des fois répétées du property_id vous pouvez créer le premier sélectionner dans une temp table et créer 2 sélections sur la table temp, à la fin déposer la table temp.

Table temporaire --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 

- Question 1:

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

--et

union all

- Question 2:

select * from #tmp where hitcount > 2 

drop table #tmp 

J'espère que cela répond à votre question.

Bonne chance

Questions connexes