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

एसक्यूएल एक महीने के लिए '0' मान कैसे दिखाएं, अगर उस महीने की तालिका में कोई डेटा मौजूद नहीं है

आप 1-12 मानों वाली तालिका को क्वेरी कर सकते हैं और बाएं बाहरी अपने परिणाम में शामिल हो सकते हैं।

यहां आपकी क्वेरी के बजाय तालिका चर का उपयोग करने वाला एक नमूना है और संख्याओं के साथ तालिका बनाने के लिए एक सीटीई है।

declare @T table
(
  Month int
)

insert into @T values(1)
insert into @T values(1)
insert into @T values(1)
insert into @T values(3)
insert into @T values(3)

;with Months(Month) as
(
  select 1
  union all
  select Month + 1
  from Months
  where Month < 12
)
select M.Month,
       count(T.Month) Count,
       isnull(sum(T.Month), 0) Sum
from Months as M
  left outer join @T as T
    on M.Month = T.Month
group by M.Month

परिणाम:

Month       Count       Sum
----------- ----------- -----------
1           3           3
2           0           0
3           2           6
4           0           0
5           0           0
6           0           0
7           0           0
8           0           0
9           0           0
10          0           0
11          0           0
12          0           0


  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 में nvarchar को दशमलव में कैसे बदलें

  3. डेटाटेबल से एसक्यूएल टेबल में डेटा कैसे अपडेट करें?

  4. SQL सर्वर में पंक्ति ऑफ़सेट

  5. टीएसक्यूएल:स्थानीय समय को यूटीसी में कैसे परिवर्तित करें? (एसक्यूएल सर्वर 2008)