ich möchte verschiedene berechnete Werte aus einer Tabelle (oder auch zwei
via Join) in einer Zeile anzeigen:
Spalte 1: sum(f1) where f2=1
Spalte 2: sum(f1) where f2=2
Ich hab jetzt null Plan, wie ich das in einem select hinbekommen könnte.
Geht das überhaupt?
Danke
Hallo,
das beste ist, Du schreibst mal die Tabellennamen auf, und gibst ein
kleines Beispiel, was Du damit wie berechnet haben möchtest.
Für den Anfang wird es für Dich sicher hilfreich sein, die Abfrage im
Management-Studio (kostenlos) mit dem Abfrage-Designer zu erstellen
(Abfrage, Abfrage in Editor entwerfen). Das ist eigentlich selbsterklärend.
Bei komplexeren Abfragen wirst Du damit aber an die Grenzen kommen.
Schönen Tag.
--
Viele Grüsse
Jörg
> das beste ist, Du schreibst mal die Tabellennamen auf, und gibst ein
> kleines Beispiel, was Du damit wie berechnet haben möchtest.
ja wenn ich das könnte ;)
pseudo:
select * from (select sum(f1) from foo where f2=1, select sum(f1) from
foo where f2=2)
> Für den Anfang wird es für Dich sicher hilfreich sein, die Abfrage im
> Management-Studio (kostenlos) mit dem Abfrage-Designer zu erstellen
> (Abfrage, Abfrage in Editor entwerfen). Das ist eigentlich
> selbsterklärend.
Schon versucht, hat zu nichts geführt.
>> das beste ist, Du schreibst mal die Tabellennamen auf, und gibst ein
>> kleines Beispiel, was Du damit wie berechnet haben möchtest.
>
> ja wenn ich das könnte ;)
>
> pseudo:
>
> select * from (select sum(f1) from foo where f2=1, select sum(f1) from
> foo where f2=2)
Schau mal, ob Du damit klar kommst:
http://www.sql-tutorial.net/
Ganz ohne Informationen wird es schwer, Dir einen Lösungsvorschlag zu geben.
>> Für den Anfang wird es für Dich sicher hilfreich sein, die Abfrage im
>> Management-Studio (kostenlos) mit dem Abfrage-Designer zu erstellen
>> (Abfrage, Abfrage in Editor entwerfen). Das ist eigentlich
>> selbsterklärend.
>
> Schon versucht, hat zu nichts geführt.
Mir wird nicht verständlich was Du genau auswerten möchtest.
--
Viele Grüsse
Jörg
> Mir wird nicht verständlich was Du genau auswerten möchtest.
Hier noch ein bisschen Text ins Blaue - lösche entweder die beiden
Zeilen mit Vorschlag 1 ODER die beiden Zeilen mit Vorschlag 2, und
schau, ob es das ist was Du möchtest.
USE tempdb
GO
SET NOCOUNT ON
GO
CREATE TABLE tbltemp(
PersonID int not null,
UnternehmenID int not null,
Art Char (10) not null,
Stunden float not null
)
GO
INSERT INTO tbltemp(PersonID, UnternehmenID, Art, Stunden)
SELECT 15, 70, 'fahrt', 20 UNION ALL
SELECT 35, 70, 'fahrt', 20 UNION ALL
SELECT 16, 70, 'dienst', 40 UNION ALL
SELECT 17, 72, 'fahrt', 40 UNION ALL
SELECT 18, 74, 'fahrt', 60 UNION ALL
SELECT 19, 78, 'dienst', 40 UNION ALL
SELECT 20, 78, 'fahrt', 20 UNION ALL
SELECT 21, 76, 'dienst', 60 UNION ALL
SELECT 25, 76, 'fahrt', 40
GO
SELECT * FROM tbltemp
GO
WITH dienst AS
(
SELECT art, SUM (stunden) AS stunden
FROM tbltemp
WHERE Art = 'dienst'
GROUP BY art
)
, fahrt AS
(
SELECT art, SUM (stunden)AS stunden
FROM tbltemp
WHERE Art = 'fahrt'
GROUP BY art
)
/* Vorschlag 1
SELECT *
FROM
fahrt, dienst
/* Vorschlag 1
/* Vorschlag 2
SELECT *
FROM fahrt
UNION
SELECT *
FROM dienst
/* Vorschlag 2
DROP TABLE tbltemp
GO
--
Viele Grüsse
Jörg