Gruppierung

31/01/2010 - 16:15 von ludwig Koenigbauer | Report spam
Hallo,
ich habe folgende Tabelle:
Kennziffern Fa Zahlungen
100 A 50,00
150 B 120,00
100 C 70,00
250 A 25,00
200 C 152,00
200 A 175,00
250 B 150,00
350 A 33,00
350 A 22,00
350 B 22,00

Mit GROUP BY Kennziffern wird jeweils für jede Kennziffer 100,150,200 usw.
der Durchschnittswert
berechnet, ich möchte die Kennzifferngruppen aber so verdichten bzw
zusammenfassen,
dass für die Gruppen mit beginnender 1,2,3 jeweils ein Schnitt/Summe
berechnet wird.

also so dass herauskommt:
Kennzifferanfang FA Berechnet
1 A xxxx
2 A xxxx
3 B xxxx
usw.
With ROLLUP und Compute komme ich nicht ans Ziel

Wie kann ich das anstellen.
Kann mir jemand einen Hinweis geben.
Danke
Grüße
Ludwig
 

Lesen sie die antworten

#1 Peter Fleischer
31/01/2010 - 21:45 | Warnen spam
"ludwig Koenigbauer" schrieb im Newsbeitrag
news:OLSa$
Hallo,
ich habe folgende Tabelle:
Kennziffern Fa Zahlungen
100 A 50,00
150 B 120,00
100 C 70,00
250 A 25,00
200 C 152,00
200 A 175,00
250 B 150,00
350 A 33,00
350 A 22,00
350 B 22,00

Mit GROUP BY Kennziffern wird jeweils für jede Kennziffer 100,150,200 usw.
der Durchschnittswert
berechnet, ich möchte die Kennzifferngruppen aber so verdichten bzw
zusammenfassen,
dass für die Gruppen mit beginnender 1,2,3 jeweils ein Schnitt/Summe
berechnet wird.

also so dass herauskommt:
Kennzifferanfang FA Berechnet
1 A xxxx
2 A xxxx
3 B xxxx
usw.
With ROLLUP und Compute komme ich nicht ans Ziel

Wie kann ich das anstellen.



Hi Ludwig,
hier mal eine Demo, wie ich das lösen würde:

Public Class Form1

Private dgv As New DataGridView With {.Dock = DockStyle.Fill}

Private Sub Form1_Load(ByVal sender As System.Object, _
ByVal e As System.EventArgs) _
Handles MyBase.Load
Me.Controls.AddRange(New Control() {dgv})
Dim dt = Testdata.Getdata
Dim res = From r In dt.AsEnumerable _
Group By kz = r.Item("Kennziffern").ToString.Substring(0, 1) _
Into Summe = Sum(CType(r.Item("Zahlungen"), Decimal)), _
Satzzahl = Count()
dgv.DataSource = New BindingSource(res.tolist, "")
End Sub

End Class

Friend Class Testdata

Public Shared Function Getdata() As DataTable
Dim dt As New DataTable("Tab1")
With dt
With .Columns
.Add("Kennziffern", GetType(String))
.Add("FA", GetType(String))
.Add("Zahlungen", GetType(Decimal))
End With
LoadRow(dt, "100", "A", 50)
LoadRow(dt, "150", "B", 120)
LoadRow(dt, "100", "C", 70)
LoadRow(dt, "250", "A", 25)
LoadRow(dt, "200", "C", 152)
LoadRow(dt, "200", "A", 175)
LoadRow(dt, "250", "B", 150)
LoadRow(dt, "350", "A", 33)
LoadRow(dt, "350", "A", 22)
LoadRow(dt, "350", "B", 22)
End With
Return dt
End Function

Private Shared Sub LoadRow(ByVal dt As DataTable, _
ByVal kennziffer As String, _
ByVal fa As String, _
ByVal zahlung As Decimal)
Dim r = dt.NewRow
r.Item("Kennziffern") = kennziffer
r.Item("FA") = fa
r.Item("Zahlungen") = zahlung
dt.Rows.Add(r)
End Sub

End Class


Viele Gruesse

Peter

Ähnliche fragen