SQL Group By Kalenderwoche als LinQ Befehl

  • VB.NET

Es gibt 1 Antwort in diesem Thema. Der letzte Beitrag () ist von VB2010 User.

    SQL Group By Kalenderwoche als LinQ Befehl

    Wie kann ich mit meiner Datatable mit LinQ das bewerkstelligen was SQL kann:

    SQL-Abfrage

    1. Select SUM(Euro), SUM(Kilo)
    2. From tblMUmsatz
    3. WHERE Datum >= '1.1.2011' And Datum <= '20.4.2011'
    4. GROUP BY DATEPART(WEEK,dbo.tblMUmsatz.Datum)
    5. ORDER BY DATEPART(WEEK,dbo.tblMUmsatz.Datum)
    Geschafft:

    VB.NET-Quellcode

    1. Imports System.GlobalizationPrivate Function WeekOf(nullable As System.Nullable(Of DateTime)) As Integer
    2. If nullable.HasValue Then
    3. Dim gCalendar As New GregorianCalendar()
    4. Dim WeekNumber As Integer = gCalendar.GetWeekOfYear(nullable.Value, CalendarWeekRule.FirstFourDayWeek, DayOfWeek.Monday)
    5. Return WeekNumber
    6. Else
    7. Return 0
    8. End If
    9. End Function


    blog.benhall.me.uk/2008/01/dat…eek-with-linq-to-sql.html

    VB.NET-Quellcode

    1. Dim results = From u In tblUmsatz _
    2. Group u By Key = WeekOf(u("Datum")) Into Group _
    3. Select tblumsatz2 = Key, _
    4. euro = Group.Sum(Function(u) u("Euro")), _
    5. kilo = Group.Sum(Function(u) u("Kilo")), kw = Key