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

SQL क्वेरी समुच्चय WHERE क्लॉज में प्रकट नहीं हो सकता है

HAVING का उपयोग करें जैसा कि त्रुटि संदेश से संकेत मिलता है, जिसके लिए GROUP BY . की आवश्यकता होती है :

SELECT
    SUM(M1.InvoiceTotal)-SUM(M1.AmountApplied) as PastDueAmount, 
    M1.BillingID, M2.Name, 
    M2.DelinquentDaysThreshold, M2.DelinquentAmountThreshold,
    DATEDIFF(d, MIN(BillingDate),GETDATE()) as DaysLate
FROM
    Invoices M1
    LEFT JOIN
    ClientAccounts M2 ON M1.BillingID = M2.ID
WHERE
    InvoiceTotal <> AmountApplied
    AND
    M2.DelinquentDaysThreshold > DATEDIFF(d, MIN(BillingDate),GETDATE())
GROUP BY
    M1.BillingID, M2.Name, 
    M2.DelinquentDaysThreshold, M2.DelinquentAmountThreshold,
    DATEDIFF(d, MIN(BillingDate),GETDATE())
HAVING
    (SUM(M1.InvoiceTotal)-SUM(M1.AmountApplied)) > M2.DelinquentAmountThreshold


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL सर्वर:सभी अपर केस को प्रॉपर केस/टाइटल केस में बनाएं

  2. SQL क्वेरी में दिखाए जाने वाले कथन पूर्णता त्रुटि से पहले अधिकतम रिकर्सन 100 समाप्त हो गया है

  3. एसक्यूएल GUID बनाम पूर्णांक

  4. देखें कि क्या तालिका में OBJECTPROPERTY () का उपयोग करके SQL सर्वर में एक डिफ़ॉल्ट बाधा है

  5. qt के साथ SQL Server 2008 से कैसे कनेक्ट करें?