2012-02-27 3 views
1

Как я агрегировать условно в C#Как добиться этого в C#

как в следующем коде VB:

Dim movement = From item In dbo.VIEWITEMMOVEMENTs 
       Where item.DATETRANSFERRED.Value.Date = Me.DateTimePicker1.Value.Date 
       Group By item.DATETRANSFERRED.Value.Date, item.ITEMDESCRIPTION 
       Into moved = Group, sold = Sum(item.QUANTITYSOLD), [IN] = Sum(If(item.QUANTITY < 0.0, 0.0, item.QUANTITY)), Out = Sum(If(item.QUANTITY > 0, 0, item.QUANTITY)) 
       Select ITEMDESCRIPTION, sold, [IN], Out Order By ITEMDESCRIPTION Ascending 
Me.DataGridView1.DataSource = movement 
+5

Что вы пытались? C# практически идентичен. – Oded

+0

Этот вопрос не очень подходит для этого сайта. Строка темы тоже малопригодна - она ​​является поисковой. –

ответ

0
var result = (
       from item in dbo.VIEWITEMMOVEMENTs 
       where item.DATETRANSFERRED.Value.Date == this.DateTimePicker1.Value.Date 
       group item by new { item.DATETRANSFERRED.Value.Date, item.ITEMDESCRIPTION } 
       into g 
       select new 
       { 
        g.Key.ITEMDESCRIPTION, 
        sold = g.Sum(x => x.QUANTITYSOLD), 
        IN = g.Sum(x => (x.QUANTITY <0 ? 0 : x.QUANTITY)), 
        Out = g.Sum(x => (x.QUANTITY > 0 ? 0 : x.QUANTITY)) 
       } 
       ).OrderBy(d => d.ITEMDESCRIPTION); 
0

если вы пытаетесь преобразовать этот фрагмент кода. вы можете использовать преобразователи как

VB to C#

Надеется, что это помогает.

Смежные вопросы