में स्टेटमेंट जब मैं ग्रीष्मकालीन प्रोग्रामिंग इंटर्नशिप के अपने पहले सप्ताह में हूं और LINQPad का उपयोग कर SQL सर्वर 2008 कथन को C# में परिवर्तित करने के लिए कार्यरत हैं। एक बार ऐसा करने के बाद और इसे ठीक से काम करने के बाद, मैं इसे वीएस में दर्ज कर सकता हूं और आवश्यकतानुसार ट्विक कर सकता हूं।एसक्यूएल केस को कनवर्ट करना सी #
समस्या यह है कि मैं SQL कथन में चल रहा हूं, मुझे नहीं पता कि कैसे परिवर्तित करना है। मेरे सी # कक्षा में हमने एसक्यूएल कथन को सी # में परिवर्तित नहीं किया है, हमने अभी एक स्ट्रिंग वैरिएबल बनाया है, एसक्यूएल कथन को वैरिएबल में असाइन किया है और फिर वैरिएबल को ओलेडीबी कॉमांड ऑब्जेक्ट में असाइन किया है। मेरे सलाहकार ने लंबे सप्ताहांत के लिए दिन बंद कर लिया और मैं अपने आप पर बहुत अधिक हूं और क्या करना है और कुछ मदद की ज़रूरत है। इस तरह के दो दर्जन हैं और यदि मैं देख सकता हूं कि एक कैसे करना है, तो मैं बाकी को समझ सकता हूं।
if [UnitState].[UnitStateType] does not equal active
then SH equals [hrs].[Hours] minus the the sum of
[Allocation].[AllocatedEnergyMwh]/(float)[Unit].[NetDependableCapacity].
else
SH = [hrs].[Hours]
मैं निम्नलिखित कोड है, जो मैं समझ काम करने के लिए नहीं जा रहा था की कोशिश की:
,[hrs].{Hours] - SUM(
CASE
WHEN [UnitState].[UnitStateTye] <> 'ACTIVE'
THEN [Allocation].[AllocatedEnergyMwh]
ELSE 0
END
/CAST([Unit].[NetDependableCapacity] AS FLOAT)) AS SH
मैं बहुत यकीन है कि यह की तर्ज पर एक अगर बयान है कर रहा हूँ: यहाँ एसक्यूएल बयान है लेकिन कहीं भी शुरू करने की आवश्यकता है:
var results =
(from v in VDimUnit
join vf in VFactEnergyAllocation on v.UnitKey equals vf.UnitKey
join vd in VDimGadsEvent on vf.GadsEventKey equals vd.GadsEventKey
join vt in VDimTime on vf.TimeKey equals vt.TimeKey
join vus in VDimUnitState on vf.UnitKey equals vus.UnitKey
where vd.GadsEventEndTime.Year == 2011 && v.UnitId == "THL3"
group vf by new {vus.UnitStateType, vf.AllocatedEnergyMwh v.NetDependableCapacity,
vt.QuarterNum} into groupItem
select new {groupItem.Key.QuarterNum, SUM1 = groupItem.Sum(x=> (float)x.AllocatedEnergyMwh/
groupItem.Key.NetDependableCapacity)}).ToArray();
var resultHours =
(from v in VDimTime
group v by v.QuarterNum into groupItem
select new {Hours = groupItem.Count(), groupItem.Key}).ToDictionary(x=> x.Key, x=> x.Hours);
var finalResults =
(from r in results
select new {SH_IF_NOT_ACTIVE = resultHours[r.QuarterNum] - r.SUM1,
Hours =
SH_IF_ACTIVE = resultHours[r.QuarterNum]});
if (SH != "ACTIVE")
{
SH_IF_NOT_ACTIVE;
}
else
{
SH_IF_ACTIVE;
}
मैं सराहना करता हूं कि कोई मुझे सही दिशा में इंगित कर सकता है।
+1 वास्तव में कुछ काम dping के लिए। ऐसा लगता है कि यहां कुछ नए प्रोग्रामर अरुणोड ऐसा करते हैं। –
@ माइकल टोड: मैं नहीं सीख सकता कि क्या मैं हर किसी को यह मेरे लिए कर रहा हूं। कुछ भी नहीं करना एक विकल्प नहीं है क्योंकि मैं स्नातक होने पर इस कंपनी के साथ नौकरी चाहता हूं। इसके अलावा वे मुझे पेंच करने के लिए भुगतान नहीं करते हैं। –
मुट्ठी सप्ताह हमेशा सबसे दर्दनाक होता है। ;) –