Как вычислить все транзакции для разных пользователей? [Дубликат]

Длина диапазона - это верхнее значение минус нижнее значение.

Это очень похоже на что-то вроде:

  for (var i = 1; i & lt;  , [; D5] 

Также, как и диапазон Ruby:

]
  1 ... 11 # это диапазон от 1 до 10  

Однако Ruby признает, что много раз вы захотите включить значение терминала и предложить альтернативный синтаксис:

  1..10 # это также диапазон от 1 до 10  
1
задан user2668812 13 September 2013 в 13:54
поделиться

1 ответ

Вы можете попробовать что-то вроде этого. (NOT TESTED) Просто использовал ваш c # LINQ для преобразования в VB

Dim test = customers.GroupBy(Function(xCustomer) xCustomer.CustId) _
               .Select(Function(xCustomers) 
                           New With {xCustomers.Key,
                           .Jan = xCustomers.Where(Function(y) y.OrderDate.Month = 1).Sum(Function(s) s.Qty),
                           .Feb = xCustomers.Where(Function(y) y.OrderDate.Month = 2).Sum(Function(s) s.Qty)})

EDIT Я добавил Feb в код. Надеюсь, поможет. Вы можете просто добавить такие свойства в анонимный тип.

EDIT

Я использовал простое приложение VB Console с данными, которые вы предоставили в своем сообщении, и работает абсолютно нормально , Вы можете попробовать это.

Sub Main()

    Dim samples As New List(Of Sample)
    samples.Add(New Sample() With {.Name = "a1", .Prod = 1, .Status = 1})
    samples.Add(New Sample() With {.Name = "a1", .Prod = 2, .Status = 2})
    samples.Add(New Sample() With {.Name = "a2", .Prod = 3, .Status = 1})

    Dim test = samples.GroupBy(Function(xSample) xSample.Name) _
               .Select(Function(xGrouping) New With { _
                           xGrouping.Key,
                           .Prod1 = xGrouping.FirstOrDefault(Function(x) x.Prod = 1), _
                           .Prod2 = xGrouping.FirstOrDefault(Function(x) x.Prod = 2), _
                           .Prod3 = xGrouping.FirstOrDefault(Function(x) x.Prod = 3) _
                           })

    Console.Write("Name")
    Console.Write(Microsoft.VisualBasic.vbTab)
    Console.Write("Prod1")
    Console.Write(Microsoft.VisualBasic.vbTab)
    Console.Write("Prod2")
    Console.Write(Microsoft.VisualBasic.vbTab)
    Console.Write("Prod3")
    Console.Write(Microsoft.VisualBasic.vbTab)
    Console.WriteLine()
    For Each test1 In test
        Console.Write(test1.Key)
        Console.Write(Microsoft.VisualBasic.vbTab)
        If (test1.Prod1 IsNot Nothing) Then
            Console.Write(test1.Prod1.Status)
        Else
            Console.Write(0)
        End If
        Console.Write(Microsoft.VisualBasic.vbTab)
        If (test1.Prod2 IsNot Nothing) Then
            Console.Write(test1.Prod2.Status)
        Else
            Console.Write(0)
        End If
        Console.Write(Microsoft.VisualBasic.vbTab)
        If (test1.Prod3 IsNot Nothing) Then
            Console.Write(test1.Prod3.Status)
        Else
            Console.Write(0)
        End If
        Console.WriteLine()
    Next
    Console.ReadLine()
End Sub
1
ответ дан Nilesh 15 August 2018 в 17:38
поделиться
  • 1
    Нилеш - Спасибо за отзывы. Не могли бы вы добавить к вашему примеру дополнительное поле? то есть. Feb? Мне почти удалось получить один пример (похожий на вашу публикацию) для работы, но не смог добавить столбцы или представить правильную запись. – user2668812 13 September 2013 в 13:34
  • 2
    Я хотел бы получить запрос в форме, более напоминающей запрос. например - link . самая большая проблема состоит в том, чтобы представить это в синтаксисе VB. – user2668812 13 September 2013 в 13:45
  • 3
    Я пробовал это без результата Dim inspects = From f In db.Tbl_Inspections Где f.Project_Sub_Comp_ID = ProjectSubCompID Выберите f Dim test = inspects.GroupBy (Function (xCustomer) xCustomer.Control_Status_ID). Выберите (Функция (xCustomers) Новое с {xCustomers. Key, .Jan = xCustomers.Where (Function (y) y.Component_ID = 1) .FirstOrDefault (Function s) s), .Feb = xCustomers.Where (Функция (y) y.Component_ID = 2) .FirstOrDefault (Функция (s) s)}) – user2668812 13 September 2013 в 14:55
  • 4
    Вы знаете, как сделать то же самое с запросом linq? т. е. тусклый тест = от s в db.table (selec ........ – user2668812 13 September 2013 в 16:16
Другие вопросы по тегам:

Похожие вопросы: