2011-05-19 8 views
6

मुझे ओरेकल डेटाबेस से महत्वपूर्ण डेटा चुनने का कार्य दिया गया है, लेकिन मुझे लगता है कि मेरा चयन डुप्लिकेट पंक्तियों को वापस कर रहा है। मुझे उनकी रिपोर्ट के लिए उनकी आवश्यकता नहीं है, लेकिन मैं नहीं चाहता हूं कि वे उन्हें हटा दें। क्या कोई मुझे केवल उस डेटा को प्राप्त करने में सहायता कर सकता है जिसकी मुझे आवश्यकता है। मैंने निम्नलिखित कोड का प्रयास किया है लेकिन इससे मदद नहीं मिलती है।मैं चुनिंदा क्वेरी में डुप्लिकेट पंक्तियों को कैसे चुन सकता हूं?

SELECT distinct bbp.SUBCAR "Treadwell", 
     bbp.BATCH_ID "Batch ID", 
     bcs.SILICON "Si", 
     bcs.SULPHUR "S", 
     bcs.MANGANESE "Mn", 
     bcs.PHOSPHORUS "P", 
     to_char(bcs.SAMPLE_TIME, 'dd-MON-yy hh24:MI') "Sample Time", 
     to_char(bbp.START_POUR, 'dd-MON-yy hh24:MI') "Start Pour Time", 
     to_char(bbp.END_POUR, 'dd-MON-yy hh24:MI') "End pour Time", 
     bofcs.temperature "Temperature" 
FROM bof_chem_sample bcs, bof_batch_pour bbp, bof_celox_sample bofcs 
WHERE bcs.SAMPLE_CODE= to_char('D1') 
AND bbp.BATCH_ID=bcs.BATCH_ID 
AND bcs.SAMPLE_TIME>=to_date('01-jan-10') 

उत्तर

5

यदि आप SQL सर्वर प्रकार SQL में अनुवाद की गई क्वेरी को देखते हैं तो आप देखेंगे कि आपके bofcs तालिका और आपके शेष डेटा के बीच कोई संबंध नहीं है। असल में यह बोफिक्स के तापमान क्षेत्र में हर रिकॉर्ड लौटा रहा है, और यह डुप्लिकेट परिणाम उत्पन्न कर सकता है?

SELECT 
    bbp.SUBCAR "Treadwell", 
    bbp.BATCH_ID "Batch ID", 
    bcs.SILICON "Si", 
    bcs.SULPHUR "S", 
    bcs.MANGANESE "Mn", 
    bcs.PHOSPHORUS "P", 
    to_char(bcs.SAMPLE_TIME,'dd-MON-yy hh24:MI') "Sample Time", 
    to_char(bbp.START_POUR, 'dd-MON-yy hh24:MI') "Start Pour Time", 
    to_char(bbp.END_POUR, 'dd-MON-yy hh24:MI') "End pour Time", 
    bofcs.temperature "Temperature" 
FROM 
    bof_chem_sample bcs, 
INNER JOIN 
    bof_batch_pour bbp, 
ON 
    bbp.BATCH_ID=bcs.BATCH_ID 
INNER JOIN 
    bof_celox_sample bofcs 
ON 
    **-- NO RELATION B/N BOFCS and the other tables????** 
WHERE 
    bcs.SAMPLE_CODE= to_char('D1') AND 
    bcs.SAMPLE_TIME>=to_date('01-jan-10') 
+0

अच्छी पकड़, मैंने कभी इसे नहीं देखा। यह एक पूर्ण कार्टशियन शामिल है, इसमें कोई आश्चर्य नहीं है कि बहुत सारे नकल हैं :) – Datajam

+0

धन्यवाद कि सही दिशा में एक बड़ा कदम था। मैंने देखा कि डेटाबेस के साथ कुछ अन्य डिस्कनेक्ट भी हैं। –

+0

किसी क्वेरी में 'विशिष्ट' को देखकर शायद अलार्म घंटी बजानी चाहिए। यह आम तौर पर क्वेरी में या डीबी डिजाइन में कुछ समस्या को कवर करता है। –

6

अपने SELECT कथन उस में एक अलग है, तो वापस आ रिकॉर्ड के सभी स्तंभों आप चयन कर रहे हैं भर में मूल्यों का एक अद्वितीय संयोजन है। आपको यह पहचानने की आवश्यकता है कि कौन से कॉलम डुप्लिकेट किए जाने वाले रिकॉर्ड में अलग-अलग मान लौटाते हैं।

संबंधित मुद्दे