- यह क्वेरी वर्तमान और पिछले महीने के डेटा को नीचे की स्थिति से खींचने के लिए है

SELECT 

 COL1 ||''||
 COL2 ||''||
 COL2 ||''||

FROM TB1 , TB2 , TB3

WHERE TB1.TRAN_YEAR=2020   AND TB1.PERIOD=(3,2) 
AND TB2.TRAN_YEAR=2020     AND TB2.PERIOD= (3,2)

- यूनियन द्वारा वर्तमान और पूर्व माह डेटा खींचने के लिए यह प्रश्न

SELECT 

 COL1 ||''||
 COL2 ||''||
 COL2 ||''||

FROM TB1 , TB2 , TB3

WHERE TB1.TRAN_YEAR=2020   AND TB1.PERIOD=(3) 
AND TB2.TRAN_YEAR=2020     AND TB2.PERIOD= (3)

UNION

SELECT 

 COL1 ||''||
 COL2 ||''||
 COL2 ||''||

FROM TB1 , TB2 , TB3

WHERE TB1.TRAN_YEAR=2020   AND TB1.PERIOD=(2) 
AND TB2.TRAN_YEAR=2020     AND TB2.PERIOD= (2)

परिणाम सेट बेमेल है, मुझे बताएं कि समान रिकॉर्ड गणना करने के लिए पहली क्वेरी में क्या बदलाव की आवश्यकता है। 12 महीने के डेटा को वापस खींचने के लिए नई क्वेरी के साथ आने की आवश्यकता है और 12 महीने के लिए UNION जोड़ना अजीब लगता है।

0
kanagaraj 6 मार्च 2020, 21:32
आपके दोनों प्रश्नों में सिंटैक्स त्रुटियां हैं क्योंकि आपके पास COL2||''|| है, जिसमें कॉन्सटेनेशन ऑपरेटर के दाईं ओर कोई अभिव्यक्ति नहीं है और =(3,2) ORA-01797: this operator must be followed by ANY or ALL देगा।
 – 
MT0
6 मार्च 2020, 22:54

2 जवाब

आपको अपनी अवधि के अनुसार परिणामों में शामिल होने की आवश्यकता है।

SELECT 

 COL1 ||''||
 COL2 ||''||
 COL2 ||''||

FROM TB1 , TB2 , TB3

WHERE TB1.TRAN_YEAR=2020   AND TB1.PERIOD in (3,2) -- use in to check, that value is in list
AND TB2.TRAN_YEAR=2020
AND (TB1.PERIOD is null or TB2.PERIOD is null or TB1.PERIOD = TB2.PERIOD)
0
Manushin Igor 6 मार्च 2020, 21:40
धन्यवाद मानुषिन! TB1.TRAN_YEAR=TB2.TRAN_YEAR और TB1.PERIOD = TB2.PERIOD दोनों स्थितियों की जांच करके अभी पता लगाया गया है
 – 
kanagaraj
6 मार्च 2020, 21:48

TB1.PERIOD=3 और TB2.PERIOD=2 या TB1.PERIOD=2 और TB2.PERIOD=3 के लिए आपकी पहली क्वेरी रिटर्न डेटा - यह बेमेल है। उसकी कोशिश करो:

WHERE 
    TB1.TRAN_YEAR=2020 AND TB2.TRAN_YEAR=2020 
    AND ((TB1.PERIOD=3 AND TB2.PERIOD=3) OR (TB1.PERIOD=2 AND TB2.PERIOD=2))

या अधिक स्पष्ट करें:

WHERE 
    TB1.TRAN_YEAR=2020 AND TB2.TRAN_YEAR=2020 
    AND TB1.PERIOD=TB2.PERIOD and TB1.PERIOD in (2, 3)
0
User9123 6 मार्च 2020, 21:48