मेरे पास एक डेटाबेस है जो मेरे एप्लिकेशन, एक लॉग प्रकार के साथ सहभागिता बनाए रखता है।
मैं एक महीने में प्रति दिन कुल इंटरैक्शन के लिए रिपोर्ट तैयार करना चाहता हूं। एक प्रक्रिया लिखने का सबसे अच्छा संभव तरीका क्या है जो 30 मान लौटाएगा, प्रत्येक मान एक दिन के लिए गिनती का प्रतिनिधित्व करता है?
मैं SQL सर्वर 2005 का उपयोग कर रहा हूं। मैं इन मानों को एक .NET कोड में पुनर्प्राप्त करता हूं, जिस पर मैं अपना एल्गोरिदम चलाना चाहता हूं।
धन्यवाद।
2 जवाब
आपकी एसक्यूएल क्वेरी निम्न की तरह दिखेगी।
select top 30 DATEPART(day, InteractionDate) as Day, COUNT(1) as Interactions from logTable group by DATEPART(day, InteractionDate)
.NET में आप SqlDataReader का उपयोग कर सकते हैं और मूल्यों को सूची में संग्रहीत कर सकते हैं
संग्रहित प्रक्रियाएं अक्सर परिणाम सेट लौटाती हैं - आप यहां जो चाहते हैं वह आपकी संग्रहीत प्रक्रिया में एक साधारण चयन कथन है। आप किस तकनीक का उपयोग कर रहे हैं, इस पर निर्भर करते हुए, आप डेटा को अपनी संरचनाओं में वापस लाने के लिए SqlDataReader
का उपयोग कर सकते हैं या SqlDataAdapter
इसे DataSet
ऑब्जेक्ट में ले जाने के लिए उपयोग कर सकते हैं।
इसलिए हमने इसे दो कार्यों में विभाजित किया है: (1) अपने इच्छित डेटा का उत्पादन करने के लिए एक SELECT
लिखें, (2) इसे पुनर्प्राप्त करने के लिए ऐप/सेवा में DR/DA का उपयोग करें।
Evpo पहले का एक अच्छा उदाहरण देता है।
संबंधित सवाल
नए सवाल
sql
संरचित क्वेरी भाषा (एसक्यूएल) डेटाबेस को क्वेरी करने के लिए एक भाषा है। प्रश्नों में कोड उदाहरण, तालिका संरचना, नमूना डेटा और DBMS कार्यान्वयन के लिए एक टैग (जैसे MySQL, PostgreSQL, Oracle, MS SQL Server, IBM DB2, आदि) का उपयोग किया जाना चाहिए। यदि आपका प्रश्न केवल एक विशिष्ट DBMS (विशिष्ट एक्सटेंशन / सुविधाओं का उपयोग करता है) से संबंधित है, तो इसके बजाय उस DBMS के टैग का उपयोग करें। एसक्यूएल के साथ टैग किए गए सवालों के जवाब में आईएसओ / आईईसी मानक एसक्यूएल का उपयोग करना चाहिए।