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

क्यों निम्न SQL सर्वर क्वेरी 12 महीने का डेटा लौटाती है न कि 14 महीने का डेटा

आपको ad.xDate के महीने और साल दोनों भागों के आधार पर समूह बनाना होगा। वर्ष के केवल बारह महीने होते हैं और आपको अपने परिणामों के शुरुआती दो (14 - 2) महीने दिखाई देने चाहिए, जिनका योग बहुत बड़ा है क्योंकि वे वास्तव में दो कैलेंडर महीनों के संयोजन का प्रतिनिधित्व करते हैं।

यह आपके मूल संस्करण में काम करता है क्योंकि किसी भी महीने में 14 से अधिक दिन होते हैं। यदि आपने उस पुरानी क्वेरी को 31 दिनों (या 28, 29, 30 कुछ महीनों के लिए) से आगे बढ़ाने की कोशिश की तो आपको वही समस्या फिर से मिलती है।

...
SELECT
    'playing' As activity,
    min(ad.xDate) As xDate, 
    Isnull(sum(t.TimePerDay), 0) As TimePerDay
FROM AllDates As ad Left Outer Join @test As t On ad.xDate = t.date
GROUP BY Year(ad.xDate), Month(ad.xDate) /* <--- change here */
ORDER BY xDate


  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 सर्वर में IDENTITY_INSERT चालू या बंद पर सेट है या नहीं?

  2. PHP 5.3 MS SQL से कनेक्ट करने के लिए मूल क्लाइंट की पहचान नहीं कर रहा है

  3. क्या LINQ के साथ पूर्ण पाठ खोज (FTS) का उपयोग करना संभव है?

  4. सरल दिनांक समय sql क्वेरी

  5. एसक्यूएल सर्वर में पुनर्प्राप्त करने की तारीख, CURRENT_TIMESTAMP बनाम GetDate ()