मैं एक मेज जो इस स्कीमाएसक्यूएल सर्वर समूह के आधार पर महीने
ItemID UserID Year IsPaid PaymentDate Amount
1 1 2009 0 2009-11-01 300
2 1 2009 0 2009-12-01 342
3 1 2010 0 2010-01-01 243
4 1 2010 0 2010-02-01 2543
5 1 2010 0 2010-03-01 475
मैं एक प्रश्न काम कर रहे हैं जो हर महीने का योग दिखाती पाने के लिए कोशिश कर रहा हूँ है की है। अब तक मैंने डेटडिफ और नेस्टेड चुनने की कोशिश की है, लेकिन न ही मुझे वह चाहिए जो मैं चाहता हूं। यह सबसे नज़दीक है जो मुझे लगता है:
DECLARE @start [datetime] = 2010/4/1;
SELECT ItemID, IsPaid,
(SELECT SUM(Amount) FROM Payments WHERE Year = 2010 And DateDiff(m, PaymentDate, @start) = 0 AND UserID = 100) AS "Apr",
(SELECT SUM(Amount) FROM Payments WHERE Year = 2010 AND DateDiff(m, PaymentDate, @start) =1 AND UserID = 100) AS "May",
(SELECT SUM(Amount) FROM Payments WHERE Year = 2010 AND DateDiff(m, PaymentDate, @start) =2 AND UserID = 100) AS "Jun",
(SELECT SUM(Amount) FROM Payments WHERE Year = 2010 AND DateDiff(m, PaymentDate, @start) =3 AND UserID = 100) AS "Jul",
(SELECT SUM(Amount) FROM Payments WHERE Year = 2010 AND DateDiff(m, PaymentDate, @start) =4 AND UserID = 100) AS "Aug",
(SELECT SUM(Amount) FROM Payments WHERE Year = 2010 AND DateDiff(m, PaymentDate, @start) =5 AND UserID = 100) AS "Sep",
(SELECT SUM(Amount) FROM Payments WHERE Year = 2010 AND DateDiff(m, PaymentDate, @start) =6 AND UserID = 100) AS "Oct",
(SELECT SUM(Amount) FROM Payments WHERE Year = 2010 AND DateDiff(m, PaymentDate, @start) =7 AND UserID = 100) AS "Nov",
(SELECT SUM(Amount) FROM Payments WHERE Year = 2010 AND DateDiff(m, PaymentDate, @start) =8 AND UserID = 100) AS "Dec",
(SELECT SUM(Amount) FROM Payments WHERE Year = 2010 AND DateDiff(m, PaymentDate, @start) =9 AND UserID = 100) AS "Jan",
(SELECT SUM(Amount) FROM Payments WHERE Year = 2010 AND DateDiff(m, PaymentDate, @start) =10 AND UserID = 100) AS "Feb",
(SELECT SUM(Amount) FROM Payments WHERE Year = 2010 AND DateDiff(m, PaymentDate, @start) =11 AND UserID = 100) AS "Mar"
FROM LIVE L INNER JOIN Payments I ON I.LiveID = L.RECORD_KEY
WHERE UserID = 16178
लेकिन जब मुझे मूल्य मिलना चाहिए तो मुझे बस शून्य मिलती है। क्या मैं कुछ भूल रहा हूँ?
क्या आप इसके तहत उपयोगकर्ता द्वारा भुगतान किए गए भुगतान के साथ वर्ष/माह तक कॉलम दिखाने के लिए तालिका को पिट करने का प्रयास कर रहे हैं? – William
आपका उपयोगकर्ता आईडी = 16178 जहां आपके उपखंड में उपयोगकर्ता आईडी = 100 से अलग खंड है, जहां खंड? जनवरी, फरवरी और मार्च के लिए आखिरी 3 सबक्विरीज भी क्रमशः 9, 10, और 11 अप्रैल से उनके महीने के मतभेद हैं? –
संभावित डुप्लिकेट [एसक्यूएल का उपयोग कर दिनांक फ़ील्ड से महीने तक समूह कैसे करें] (http://stackoverflow.com/questions/14565788/how-to-group-by-month-from-date-field-using-sql) – kurast