SQL Abfrage - Hilfe -

Datenbanklösungen mit AOO/LO

Moderator: Moderatoren

herhag
**
Beiträge: 27
Registriert: Di, 19.04.2016 19:14
Wohnort: Nbg.
Kontaktdaten:

SQL Abfrage - Hilfe -

Beitrag von herhag » Do, 30.06.2016 11:46

Hallo in´s Forum,

eine funktionierende Abfrage...

Code: Alles auswählen

SELECT DISTINCT "Person"."Nachname", "tbl_Arbeitsstunden"."id_person_f", SUM( "tbl_Arbeitsstunden"."StundenAnzahl" ) "Gesamtstunden"
FROM "tbl_Arbeitsstunden", "Person"
WHERE "tbl_Arbeitsstunden"."id_person_f" = "Person"."ID" 
GROUP BY "tbl_Arbeitsstunden"."id_person_f", "Person"."Nachname"
...liefert mir die Summe der geleisteten Arbeitsstunden eines Mitgliedes.

Mein nächstes Ziel ist, dass diese ermittelte GesamtSumme von einer Vorgabe abgezogen werden soll.
Beispiel:
Geleistet = 10 Std.
Vorgabe = 20 Std.
Rest = 10 Std.

Wie muss ich meine Abfrage ändern, ergänzen oder umbauen, damit ich diesen Rest errechnen kann?
Wer kann mir da auf die Sprünge helfen?
Wäre super!! :)
Danke für die Hilfe. :D 8)
==============================
Libre Office 5.1.1.3
PortableVersion
Windows 10
64 Bit

RobertG
*******
Beiträge: 1735
Registriert: Fr, 13.04.2012 19:28
Kontaktdaten:

Re: SQL Abfrage - Hilfe -

Beitrag von RobertG » Do, 30.06.2016 15:17

Hallo Herhag,

in welcher Tabelle stehen die Vorgaben? Ansonsten: Auch nach den Vorgaben gruppieren und die Gesamtstunden abziehen oder die Summe der Vorgaben erstellen und davon die Gesamtstunden abziehen.

Gruß

Robert

herhag
**
Beiträge: 27
Registriert: Di, 19.04.2016 19:14
Wohnort: Nbg.
Kontaktdaten:

Re: SQL Abfrage - Hilfe -

Beitrag von herhag » Do, 30.06.2016 17:52

Hallo Robert,

danke für die Hilfe.

Nun habe ich eine Tabelle "tbl_StdVorgabe" und ein Feld "Std_Vorgabe " (Decimal).

Code: Alles auswählen

SELECT DISTINCT "Person"."Nachname", "tbl_Arbeitsstunden"."id_person_f", SUM( "tbl_Arbeitsstunden"."StundenAnzahl" ) "Gesamtstunden", "tbl_StdVorgabe"."Std_Vorgabe"
 SUM( "tbl_Arbeitsstunden"."StundenAnzahl" ) - "tbl_StdVorgabe"."Std_Vorgabe" AS "Rest" 

FROM "tbl_Arbeitsstunden", "Person", "tbl_StdVorgabe" 
WHERE "tbl_Arbeitsstunden"."id_person_f" = "Person"."ID" 
GROUP BY "Person"."Nachname", "tbl_Arbeitsstunden"."id_person_f", "tbl_StdVorgabe"."Std_Vorgabe"
Hier bekomme ich einen SyntaxFehler??
Was stimmt da nicht??
Danke für die Hilfe. :D 8)
==============================
Libre Office 5.1.1.3
PortableVersion
Windows 10
64 Bit

herhag
**
Beiträge: 27
Registriert: Di, 19.04.2016 19:14
Wohnort: Nbg.
Kontaktdaten:

Re: SQL Abfrage - Hilfe - Lösung gefunden

Beitrag von herhag » Fr, 01.07.2016 10:21

Hallo Robert,

anbei meine funktionierende Lösung...

Code: Alles auswählen

SELECT DISTINCT "Person"."Nachname", "tbl_Arbeitsstunden"."id_person_f", 

SUM( "tbl_Arbeitsstunden"."StundenAnzahl" ) "Gesamtstunden", "StundenJahr", "StdVorgabe", 
SUM( DISTINCT "StdVorgabe" ) - SUM( "tbl_Arbeitsstunden"."StundenAnzahl" ) "Rest" 

FROM "tbl_Arbeitsstunden", "Person" 

WHERE "tbl_Arbeitsstunden"."id_person_f" = "Person"."ID" 

GROUP BY "Person"."Nachname", "tbl_Arbeitsstunden"."id_person_f", "tbl_Arbeitsstunden"."StdVorgabe", "tbl_Arbeitsstunden"."StundenJahr" 
ORDER BY "tbl_Arbeitsstunden"."StundenJahr" ASC
...habe in die Tbl zusätzliche Felder (StundenJahr, StdVorgabe) eingebaut und entsprechend die Abfrage geändert.

Danke nochmals für den Denkanstoß :) :)
Danke für die Hilfe. :D 8)
==============================
Libre Office 5.1.1.3
PortableVersion
Windows 10
64 Bit

Antworten