vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
sevDataGrid - Gönnen Sie Ihrem SQL-Kommando diesen krönenden Abschluß!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Fortgeschrittene
Re: sql to LINQ 
Autor: Drapondur
Datum: 07.01.10 19:54

Das kann man so schwer sagen, da wir Deine Buchung-Tabelle nicht haben. Und eine LINQ-Query freihändig zu schreiben, ohne eine Referenz auf die LINQ-Table kann man (ich zumindest) nicht.

Allerdings ist LINQPad eine gute Möglichkeit sich einzuarbeiten.

Da ich aufgrund Deiner Frage mal ausprobieren wollte, wie eine solche Gruppierung in VB.NET generell geht, habe ich ein bißchen mit der Northwind-DB rumgespielt und eine strukturell ähnliche Abfrage über die Products-Tabelle gemacht. Vielleicht hilft es Dir ja als Anhaltspunkt.
Using ctx As New NorthwindDataContext
	ctx.Log = New IO.StringWriter
 
	Dim qry = From p In ctx.Products _
	 Where p.Discontinued = False _
	 Group p By p.CategoryID, p.SupplierID _
	 Into _
	 SumPrice = Sum(p.UnitPrice) _
	 Select _
	 SumPrice, CategoryID, SupplierID, _
	 BlaBla = If(SumPrice > 50, "mehr als fünfzig", "weniger als fünfzig")
 
	Me.DataGridView1.DataSource = qry
 
	Debug.WriteLine(ctx.Log.ToString)
End Using
Erzeugtes SQL:
SELECT [t1].[value] AS [SumPrice], [t1].[CategoryID], [t1].[SupplierID], 
    (CASE 
        WHEN (COALESCE(
            (CASE 
                WHEN [t1].[value] > @p0 THEN 1
                WHEN NOT ([t1].[value] > @p0) THEN 0
                ELSE NULL
             END),@p1)) = 1 THEN CONVERT(NVarChar(19),@p2)
        ELSE @p3
     END) AS [BlaBla]
FROM (
    SELECT SUM([t0].[UnitPrice]) AS [value], [t0].[CategoryID], _
      [t0].[SupplierID]
    FROM [dbo].[Products] AS [t0]
    WHERE NOT ([t0].[Discontinued] = 1)
    GROUP BY [t0].[CategoryID], [t0].[SupplierID]
    ) AS [t1]
-- @p0: Input Decimal (Size = 0; Prec = 33; Scale = 4) [50]
-- @p1: Input Int (Size = 0; Prec = 0; Scale = 0) [0]
-- @p2: Input NVarChar (Size = 16; Prec = 0; Scale = 0) [mehr als fünfzig]
-- @p3: Input NVarChar (Size = 19; Prec = 0; Scale = 0) [weniger als fünfzig]
-- Context: SqlProvider(Sql2008) Model: AttributedMetaModel Build: _
  3.5.30729.4926
Ciao D.
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
sql to LINQ2.45107momo07.01.10 13:23
Re: sql to LINQ1.873ModeratorRalf Ehlert07.01.10 18:27
Re: sql to LINQ1.857Drapondur07.01.10 19:10
Re: sql to LINQ1.891ModeratorRalf Ehlert07.01.10 19:19
Re: sql to LINQ1.875Drapondur07.01.10 19:24
Re: sql to LINQ1.821Drapondur07.01.10 19:26
Re: sql to LINQ1.861Drapondur07.01.10 19:56
Re: sql to LINQ1.871Drapondur07.01.10 19:54

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel