AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken [MSSQL] Erweiterte Gruppierung im View
Thema durchsuchen
Ansicht
Themen-Optionen

[MSSQL] Erweiterte Gruppierung im View

Ein Thema von Reinhardtinho · begonnen am 11. Mai 2011 · letzter Beitrag vom 11. Mai 2011
Antwort Antwort
Benutzerbild von Reinhardtinho
Reinhardtinho

Registriert seit: 26. Feb 2007
411 Beiträge
 
Delphi 5 Enterprise
 
#1

[MSSQL] Erweiterte Gruppierung im View

  Alt 11. Mai 2011, 09:28
Datenbank: MS SQL Server • Version: 2005 • Zugriff über: Managment Studio
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:
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
Die Definition des Views:
Code:
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
Und das Resultat:
Code:
Name | Qty | Status
-------------------
ABCD | 1   | A
ABCD | 3   | A
EFGH | 2   | A
Was ich haben möchte:
Code:
Name | Qty | Status
-------------------
ABCD | 4   | A
EFGH | 4   | A
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?

Vielen Dank für eure Mühe
Ich habe viel von meinem Geld für Alkohol, Weiber und schnelle Autos ausgegeben ... Den Rest habe ich einfach verpraßt.

George Best - 22.05.1946 - 25.11.2005 - nordirischer Fußballspieler
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.541 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: [MSSQL] Erweiterte Gruppierung im View

  Alt 11. Mai 2011, 09:35
Und wenn Du den Alias Status einmal anders benennst als das Feld, das dahintersteckt?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von Reinhardtinho
Reinhardtinho

Registriert seit: 26. Feb 2007
411 Beiträge
 
Delphi 5 Enterprise
 
#3

AW: [MSSQL] Erweiterte Gruppierung im View

  Alt 11. Mai 2011, 09:40
Das Resultat ist leider noch das gleiche.
Ich habe viel von meinem Geld für Alkohol, Weiber und schnelle Autos ausgegeben ... Den Rest habe ich einfach verpraßt.

George Best - 22.05.1946 - 25.11.2005 - nordirischer Fußballspieler
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.541 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: [MSSQL] Erweiterte Gruppierung im View

  Alt 11. Mai 2011, 09:45
Du gruppierst aber jetzt nach dem umbenannten Alias, oder?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von Reinhardtinho
Reinhardtinho

Registriert seit: 26. Feb 2007
411 Beiträge
 
Delphi 5 Enterprise
 
#5

AW: [MSSQL] Erweiterte Gruppierung im View

  Alt 11. Mai 2011, 09:48
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
Ich habe viel von meinem Geld für Alkohol, Weiber und schnelle Autos ausgegeben ... Den Rest habe ich einfach verpraßt.

George Best - 22.05.1946 - 25.11.2005 - nordirischer Fußballspieler
  Mit Zitat antworten Zitat
omata

Registriert seit: 26. Aug 2004
Ort: Nebel auf Amrum
3.154 Beiträge
 
Delphi 7 Enterprise
 
#6

AW: [MSSQL] Erweiterte Gruppierung im View

  Alt 11. Mai 2011, 09:49
SQL-Code:
SELECT Name, COUNT(*) Qty, Status
FROM (SELECT id, Name, CASE WHEN status in ('A', 'B') THEN 'AELSE 'CEND Status
      FROM Test) x
GROUP BY name, status
Edit: oder...

SQL-Code:
SELECT Name, COUNT(*) Qty, CASE WHEN status in ('A', 'B') THEN 'AELSE 'CEND Status
FROM Test
GROUP BY name, CASE WHEN status in ('A', 'B') THEN 'AELSE 'CEND

Geändert von omata (11. Mai 2011 um 10:00 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Reinhardtinho
Reinhardtinho

Registriert seit: 26. Feb 2007
411 Beiträge
 
Delphi 5 Enterprise
 
#7

AW: [MSSQL] Erweiterte Gruppierung im View

  Alt 11. Mai 2011, 10:00
Perfekt!
Vielen Dank euch beiden und allen anderen die mitgegrübelt haben.
Ich habe viel von meinem Geld für Alkohol, Weiber und schnelle Autos ausgegeben ... Den Rest habe ich einfach verpraßt.

George Best - 22.05.1946 - 25.11.2005 - nordirischer Fußballspieler
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:41 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz