Sqlserver
 sql >> डेटाबेस >  >> RDS >> Sqlserver

SQL सर्वर 2008 में सशर्त कुल का उपयोग करना

पहली क्वेरी की कॉलम सूची में बस दूसरी क्वेरी जोड़ें क्योंकि यह केवल एक पंक्ति लौटाएगी। इसे आजमाएं।

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



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. एकाधिक पंक्तियों के साथ कई पंक्तियों को अलग-अलग पंक्तियों में मर्ज करने की क्वेरी

  2. प्रोएक्टिव SQL सर्वर स्वास्थ्य जांच, भाग 2:रखरखाव

  3. MS SQL Server-2008 से कई तालिकाओं का संदर्भ लेते हुए डेटा निकालना

  4. SQL सर्वर तालिका json . के लिए

  5. SQL सर्वर प्रदर्शन टॉप CPU क्वेरी -2