![]() |
Datenbank: MS SQL Server • Version: 2005 • Zugriff über: Managment Studio
[MSSQL] Erweiterte Gruppierung im View
Hi,
ich habe folgendes Problem. In einem View möchte ich nach einem Status-Feld gruppieren und zusätzlich eine Menge ausgeben, das Status-Feld selbst aber ist schon zusammengefasst. Die Tabelle sieht beispielhaft so aus:
Code:
Die Definition des Views:
ID | Name | Status
------------------ 1 | ABCD | A 2 | ABCD | A 3 | ABCD | B 4 | ABCD | A 5 | EFGH | C 6 | EFGH | C 7 | EFGH | D 8 | EFGH | D
Code:
Und das Resultat:
create view TestView
as select distinct Name, Qty = Count(ID), Status = case when Status in ('A', 'B') then 'A' else 'C' end from Test group by Name, Status
Code:
Was ich haben möchte:
Name | Qty | Status
------------------- ABCD | 1 | A ABCD | 3 | A EFGH | 2 | A
Code:
Gibt es eine Möglichkeit, die Abfrage im View so anzupassen, so dass ich das gewünschte Resultat bekomme und muss ich zu der Alternative greifen, eine weitere Status-Spalte in meine Tabelle aufzunehmen?
Name | Qty | Status
------------------- ABCD | 4 | A EFGH | 4 | A Vielen Dank für eure Mühe |
AW: [MSSQL] Erweiterte Gruppierung im View
Und wenn Du den Alias Status einmal anders benennst als das Feld, das dahintersteckt?
|
AW: [MSSQL] Erweiterte Gruppierung im View
Das Resultat ist leider noch das gleiche.
|
AW: [MSSQL] Erweiterte Gruppierung im View
Du gruppierst aber jetzt nach dem umbenannten Alias, oder?
|
AW: [MSSQL] Erweiterte Gruppierung im View
Nein, das geht nicht.
Mein View sieht nun so aus:
Code:
create view TestView
as select distinct Name, Qty = Count(ID), Foo = case when Status in ('A', 'B') then 'A' else 'C' end from Test group by Name, Status |
AW: [MSSQL] Erweiterte Gruppierung im View
SQL-Code:
Edit: oder...
SELECT Name, COUNT(*) Qty, Status
FROM (SELECT id, Name, CASE WHEN status in ('A', 'B') THEN 'A' ELSE 'C' END Status FROM Test) x GROUP BY name, status
SQL-Code:
SELECT Name, COUNT(*) Qty, CASE WHEN status in ('A', 'B') THEN 'A' ELSE 'C' END Status
FROM Test GROUP BY name, CASE WHEN status in ('A', 'B') THEN 'A' ELSE 'C' END |
AW: [MSSQL] Erweiterte Gruppierung im View
Perfekt!
Vielen Dank euch beiden und allen anderen die mitgegrübelt haben. :dp: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:49 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz