पहली क्वेरी की कॉलम सूची में बस दूसरी क्वेरी जोड़ें क्योंकि यह केवल एक पंक्ति लौटाएगी। इसे आजमाएं।
SELECT Sum(CASE
WHEN MONTH = '2013-8-1' THEN CurrentStock
ELSE 0
END) AS CurrentStock,
Isnull(Sum(CASE WHEN MONTH = '2014-2-1' THEN CPU ELSE 0 END), 0) -
Isnull(Sum(CASE WHEN MONTH = '2013-8-1' THEN CPU ELSE 0 END), 0) AS CPU,
Sum(CASE WHEN Month = '2013-8-1' THEN NonCPUWIP ELSE 0 END) AS NonCPU,
Isnull(Sum(CASE WHEN MONTH = '2014-2-1' THEN ScrapDiscarded ELSE 0 END), 0) -
Isnull(Sum(CASE WHEN MONTH = '2013-8-1' THEN ScrapDiscarded ELSE 0 END), 0)AS Scrap,
Sum(CASE WHEN Month = '2013-8-1' THEN WaitingForApproval ELSE 0 END) AS WFA,
(SELECT Count(STBSerialNUMBER)
FROM OutStock
WHERE DispatchDate BETWEEN '2013-8-1' AND '2014-2-1'
AND Vendor = 'abc' ) as Despatched
FROM Instock I
WHERE Vendor = 'abc'
अपडेट करें:
यदि आप प्रत्येक मॉडल की परिणाम गणना चाहते हैं तो subquery
. को रूपांतरित करें यह correlated subquery
. के लिए . कुछ इस तरह होना चाहिए
(SELECT Count(STBSerialNUMBER)
FROM OutStock O
WHERE o.model = i.model -- here is the change
AND O.DispatchDate BETWEEN '2013-8-1' AND '2014-2-1'
AND o.Vendor = 'abc')
यहां प्रत्येक model
. के लिए Instock
. में संबंधित count
को टेबल करें outstock
. में गणना की जाएगी।
या आप Left Join
. का भी इस्तेमाल कर सकते हैं . पहले प्रत्येक model
. की गणना करें outstock
. में तालिका join
परिणाम वापस Instock
. पर मॉडल का उपयोग कर तालिका
....
From Instock I Left Join
(SELECT Count(STBSerialNUMBER) OutStock_count,Model
FROM OutStock O
WHERE O.DispatchDate BETWEEN '2013-8-1' AND '2014-2-1'
AND o.Vendor = 'abc'
Group by Model) O on o.model = i.model