मैं इस प्रश्न में केवल 90 दिनों या उससे कम समय के लिए परिणाम दिखाना चाहता हूं जो मैंने लिखा है:

SELECT
 (amount / 100) as "Reel_$",
   CASE
   WHEN savingstrategyfrequency = 'day' THEN CEIL(((total - (successfulamount + pendingamount)) * 1.00) / savingstrategyamount)
    WHEN savingstrategyfrequency = 'week' THEN CEIL(((total - (successfulamount + pendingamount)) * 1.00) / ((savingstrategyamount * 1.00) / 7))
 END AS days_to_complete
FROM prodjoinreel.goals
WHERE
 status IN ('active')

लेकिन जब मैं निम्नलिखित कथन शामिल करता हूं: where status IN ('active') and days_to_complete < 90 मुझे त्रुटि मिलती है। मैं क्या गलत कर रहा हूं?

0
Lane Portman 26 मार्च 2020, 19:30

1 उत्तर

सबसे बढ़िया उत्तर

आपको या तो अभिव्यक्ति दोहराने की जरूरत है, या एक सबक्वायरी (या सीटीई) का उपयोग करना होगा:

SELECT *
FROM (
    SELECT
        (amount / 100) as "Reel_$",
        CASE
            WHEN savingstrategyfrequency = 'day' 
                THEN CEIL(((total - (successfulamount + pendingamount)) * 1.00) / savingstrategyamount)
            WHEN savingstrategyfrequency = 'week' 
                THEN CEIL(((total - (successfulamount + pendingamount)) * 1.00) / ((savingstrategyamount * 1.00) / 7))
        END AS days_to_complete
    FROM prodjoinreel.goals
    WHERE status IN ('active')
) t
WHERE days_to_complete < 90
0
GMB 26 मार्च 2020, 16:33