Laden...

SQL Compact 3.5: Count(Distinct) - Alternative?

Erstellt von dimuwe vor 12 Jahren Letzter Beitrag vor 12 Jahren 1.007 Views
D
dimuwe Themenstarter:in
168 Beiträge seit 2005
vor 12 Jahren
SQL Compact 3.5: Count(Distinct) - Alternative?

verwendetes Datenbanksystem: SQL Compact 3.5 (CE)

Hallo,
ich habe folgende Abfrage:


SELECT     MAX(ScnNo) AS ScnNo, CtnNo, COUNT(ETeileNr) AS ETeile, COUNT(ComNo2) AS Com
FROM         TICKETINGDATEN
WHERE     (Verarbeitet = 0)
GROUP BY CtnNo
ORDER BY CtnNo

Als Ergebnis bekomme ich:

A01	0001	4	4
A01	0002	2	2
A01	0007	2	2
A01	0009	1	1

Soweit so gut!
Ich möchte aber folgendes Ergebnis:

A01	0001	4	1
A01	0002	2	1
A01	0007	2	2
A01	0009	1	1

Dies würde man mit "... COUNT(DISTINCT ComNo2) AS Com" hinbekommen.
Aber ich bekomme eine Fehlermeldung, das DISTINCT in SQLCE nicht unterstütz wird.

Meine Frage ist nun, wie kann ich dies hinbekommen?

Vielen Dank
dimuwe

6.911 Beiträge seit 2009
vor 12 Jahren

Hallo,

entweder client-seitig mittels LINQ oder "server-seitig" mit einer GROUP BY-Unterabfrage.

mfG Gü

Stellt fachliche Fragen bitte im Forum, damit von den Antworten alle profitieren. Daher beantworte ich solche Fragen nicht per PM.

"Alle sagten, das geht nicht! Dann kam einer, der wusste das nicht - und hat's gemacht!"

D
dimuwe Themenstarter:in
168 Beiträge seit 2005
vor 12 Jahren
re

Hallo Gü,

danke für die Antwort.
Groupe By-Unterabfrage?
Wie würde diese denn in diesem Fall aussehen.

Vielen Dank für die Hilfe
dimuwe

6.911 Beiträge seit 2009
vor 12 Jahren

Hallo,

kannst du ein paar Beispiel-Rohdaten posten - dann tu ich mir leichter ein Beispiel zu erzeugen.

mfG Gü

Stellt fachliche Fragen bitte im Forum, damit von den Antworten alle profitieren. Daher beantworte ich solche Fragen nicht per PM.

"Alle sagten, das geht nicht! Dann kam einer, der wusste das nicht - und hat's gemacht!"

D
dimuwe Themenstarter:in
168 Beiträge seit 2005
vor 12 Jahren

Hallo Gü,

vielen Dank dafür.

ID ComNo1 ComNo2 ScnNo CtnNo E_TeileNr Verarbeitet
2 011 400044 A01 0009 076175434 0
3 011 400044 A01 0007 076175453 0
4 011 400053 A01 0001 076350504 0
5 011 400053 A01 0001 076350505 0
6 011 400053 A01 0007 076350551 0
7 011 400053 A01 0002 076350552 0
8 011 400053 A01 0002 076350553 0
9 011 400053 A01 0001 076350554 0
0 011 400053 A01 0001 076350555 0

reichen die?
dimuwe

6.911 Beiträge seit 2009
vor 12 Jahren

Hallo,

ja die Daten reichen. Aber leider lässt der CE keine Subqueries zu die Skalarwerte zurückgeben (wusste ich vorher auch noch nicht). Das Problem kann sich also höchsten verlagern.

Ich denke es ist einfacher das mit Linq clientseitig zu erledigen. Also die Daten mit ToList materialisieren und dann die Abfrage durchführen.

mfG Gü

Stellt fachliche Fragen bitte im Forum, damit von den Antworten alle profitieren. Daher beantworte ich solche Fragen nicht per PM.

"Alle sagten, das geht nicht! Dann kam einer, der wusste das nicht - und hat's gemacht!"

D
dimuwe Themenstarter:in
168 Beiträge seit 2005
vor 12 Jahren
re

Hallo Gü,

trotzdem vielen Dank für die Mühe.
Ich werde es dann mal Client-seitig versuchen.

dimuwe