मेरे पास एक डेटाबेस है जो मेरे एप्लिकेशन, एक लॉग प्रकार के साथ सहभागिता बनाए रखता है।

मैं एक महीने में प्रति दिन कुल इंटरैक्शन के लिए रिपोर्ट तैयार करना चाहता हूं। एक प्रक्रिया लिखने का सबसे अच्छा संभव तरीका क्या है जो 30 मान लौटाएगा, प्रत्येक मान एक दिन के लिए गिनती का प्रतिनिधित्व करता है?

मैं SQL सर्वर 2005 का उपयोग कर रहा हूं। मैं इन मानों को एक .NET कोड में पुनर्प्राप्त करता हूं, जिस पर मैं अपना एल्गोरिदम चलाना चाहता हूं।

धन्यवाद।

0
Jayesh 28 सितंबर 2011, 11:06
क्या आपने किसी तालिका में विज़िट की संख्या संग्रहीत की है? यदि संग्रहीत है तो अपनी तालिका संरचना दें।
 – 
Upendra Chaudhari
28 सितंबर 2011, 11:23

2 जवाब

सबसे बढ़िया उत्तर

आपकी एसक्यूएल क्वेरी निम्न की तरह दिखेगी।

select top 30 DATEPART(day, InteractionDate) as Day, COUNT(1) as Interactions from logTable group by DATEPART(day, InteractionDate)

.NET में आप SqlDataReader का उपयोग कर सकते हैं और मूल्यों को सूची में संग्रहीत कर सकते हैं

1
evpo 30 सितंबर 2011, 03:44

संग्रहित प्रक्रियाएं अक्सर परिणाम सेट लौटाती हैं - आप यहां जो चाहते हैं वह आपकी संग्रहीत प्रक्रिया में एक साधारण चयन कथन है। आप किस तकनीक का उपयोग कर रहे हैं, इस पर निर्भर करते हुए, आप डेटा को अपनी संरचनाओं में वापस लाने के लिए SqlDataReader का उपयोग कर सकते हैं या SqlDataAdapter इसे DataSet ऑब्जेक्ट में ले जाने के लिए उपयोग कर सकते हैं।

इसलिए हमने इसे दो कार्यों में विभाजित किया है: (1) अपने इच्छित डेटा का उत्पादन करने के लिए एक SELECT लिखें, (2) इसे पुनर्प्राप्त करने के लिए ऐप/सेवा में DR/DA का उपयोग करें।

Evpo पहले का एक अच्छा उदाहरण देता है।

1
Kieren Johnstone 28 सितंबर 2011, 11:55