dr.cornwallis
Goto Top

Kreuztabelle addieren

Hallo zusammen,

ich habe folgendes Problem, bei der ua. Kreuztabelle würde ich gerne die Felder "Zeit" und "Differenz absolut" addieren, dies klappt aber nicht:
access

Die Abfrage beinhaltet noch 2 Felder: Datum und der Mitarbeiter(dh. Mitarbeiter kommen in der Abfrage mehrmals vor).

Wie kann ich diese beiden Felder addieren?

Danke für eure Hilfe!


Gruß Dr.

Content-ID: 315442

Url: https://administrator.de/contentid/315442

Ausgedruckt am: 25.11.2024 um 00:11 Uhr

vossi31
vossi31 16.09.2016 um 12:01:13 Uhr
Goto Top
Moin,

ein paar mehr Angaben würden helfen.

Worum geht es überhaupt? Rubrik "Datenbanken" --> SQL?
Wie lautet denn deine bisherige Abfrage?
Wie das Ergebnis?

SUM(Zeit+Differenz absolut)

Henning
em-pie
em-pie 16.09.2016 um 12:04:48 Uhr
Goto Top
Moin,

wie wäre es mit einem Taschenrechner?
Oder ganz späktakulär: Mit einem Abakus face-smile


Ansonsten müssten wir ersteinmal div. Rahmenbedingungen wissen:
Wo werden die Daten visualisiert?
Was ist das für ein Datenbanksystem?
Wie kommt die AUfstellung aus dem Screenshot zustande?
Was hast du bisher versucht

Gruß
em-pie
Dr.Cornwallis
Dr.Cornwallis 16.09.2016 um 12:27:54 Uhr
Goto Top
Moin,

sorry war ein bisschen wenig Info...

Es handelt sich um Access 2010, der Screenshot zeigt eine Kreuztabelle, diese entsteht aus einer normalen Abfrage und in dieser schaffe ich es nicht die Zahlen zu addieren da die 150 ansonsten bei jedem Datensatz addiert werden(was ich nicht möchte), ich möchte dass die Summe der Differenz(Screenshot - Feld) mit den 150(Feld Zeit) in der Kreuztabelle addiert werden.

In einer normalen Abfrage wäre es ganz einfach, aber in der Kreuztabelle eben nicht(für mich).
Die Kreuztabelle ist nach den Mitarbeitern gruppiert.


Gruß

Dr.
em-pie
em-pie 16.09.2016 um 12:37:25 Uhr
Goto Top
und wie ermittelst du im Detail das Feld "Differenz Absolut" derzeit?
Wenn es z.B. mit SUM(Jan-Dez) ermittelt wird, müsste doch ein Zeit+SUM(Jan-Dez) auch funktionieren

Vielleicht kannst du von deiner Abfrage ja mal ein Screenshot erstellen face-smile
Dr.Cornwallis
Dr.Cornwallis 16.09.2016 um 12:49:31 Uhr
Goto Top
Zitat von @em-pie:

und wie ermittelst du im Detail das Feld "Differenz Absolut" derzeit?
Wenn es z.B. mit SUM(Jan-Dez) ermittelt wird, müsste doch ein Zeit+SUM(Jan-Dez) auch funktionieren

Vielleicht kannst du von deiner Abfrage ja mal ein Screenshot erstellen face-smile

Was hättest du denn gerne genau? SQL Ansicht oder Entwurf Ansicht?
Die normale oder die Kreuztabelle?

Muss leider in 10min los, kann mich dann erst wieder am Abend melden.

Gruß
Dr.Cornwallis
Dr.Cornwallis 16.09.2016 um 12:57:09 Uhr
Goto Top
SQL Code der normalen Abfrage(aus dieser entsteht die Kreuztabelle und gruppiert die MA/summiert die Differenzen und zu dieser Summe müssten in ein weiteres Feld noch mal 150 addiert werden bzw. das Feld Zeit)

SELECT Korridor_Absolut.PersNr, Korridor_Absolut.Mitarbeiter, Korridor_Absolut.OrgEinh, Korridor_Absolut.Anzahl, Rohdaten.ZBB, Rohdaten.Kostenstelle, Rohdaten.[DM], Wochenstunden.Korridorstunden, Sum([Korridor_Absolut]![Anzahl]-[Wochenstunden]![Korridorstunden]) AS Absolut, Korridor_Absolut.Periode
FROM (Korridor_Absolut INNER JOIN Rohdaten ON Korridor_Absolut.OrgEinh = Rohdaten.[OrgEinh#]) INNER JOIN Wochenstunden ON Korridor_Absolut.PersNr = Wochenstunden.PersNummer
WHERE (((Year([Periode]))=2016))
GROUP BY Korridor_Absolut.PersNr, Korridor_Absolut.Mitarbeiter, Korridor_Absolut.OrgEinh, Korridor_Absolut.Anzahl, Rohdaten.ZBB, Rohdaten.Kostenstelle, Rohdaten.[DM], Wochenstunden.Korridorstunden, Korridor_Absolut.Periode
HAVING (((Rohdaten.[DM Bereich])=[Forms]![frm_DM]![txtOrgEinh]) AND ((Sum([Korridor_Absolut]![Anzahl]-[Wochenstunden]![Korridorstunden]))>0))
ORDER BY Korridor_Absolut.Anzahl DESC , Sum([Korridor_Absolut]![Anzahl]-[Wochenstunden]![Korridorstunden]) DESC;

SQL Code Kreuztabelle:

TRANSFORM Sum(qry_Korridor_absolut.Absolut) AS SummevonAbsolut
SELECT qry_Korridor_absolut.Mitarbeiter, qry_Korridor_absolut.PersNr, qry_Korridor_absolut.Kostenstelle, qry_Korridor_absolut.[DM Bereich], qry_Korridor_absolut.ZBB, qry_Korridor_absolut.Korridorstunden AS Zeit, Sum(qry_Korridor_absolut.Absolut) AS [Differenz Absolut]
FROM qry_Korridor_absolut
GROUP BY qry_Korridor_absolut.Mitarbeiter, qry_Korridor_absolut.PersNr, qry_Korridor_absolut.Kostenstelle, qry_Korridor_absolut.[DM Bereich], qry_Korridor_absolut.ZUBA, qry_Korridor_absolut.Korridorstunden, ([qry_Korridor_absolut_Kreuztabelle]![Zeit]+[qry_Korridor_absolut_Kreuztabelle]![Differenz absolut])
PIVOT Format([Periode],"mmm") In ("Jän","Feb","Mär","Apr","Mai","Jun","Jul","Aug","Sep","Okt","Nov","Dez");  

Gruß

Dr.
em-pie
Lösung em-pie 16.09.2016 um 14:03:57 Uhr
Goto Top
So (Zeile10) müsste es passen (habe mal etwas Kosmetik ergänzt):

TRANSFORM Sum(qry_Korridor_absolut.Absolut) AS SummevonAbsolut
SELECT 
	qry_Korridor_absolut.Mitarbeiter
	, qry_Korridor_absolut.PersNr
	, qry_Korridor_absolut.Kostenstelle
	, qry_Korridor_absolut.[DM Bereich]
	, qry_Korridor_absolut.ZBB
	, qry_Korridor_absolut.Korridorstunden AS Zeit
	, Sum(qry_Korridor_absolut.Absolut) AS [Differenz Absolut]
	, Sum(qry_Korridor_absolut.Absolut)+qry_Korridor_absolut.Korridorstunden AS Time_and_Diff
FROM 
	qry_Korridor_absolut
GROUP BY 
	qry_Korridor_absolut.Mitarbeiter
	, qry_Korridor_absolut.PersNr
	, qry_Korridor_absolut.Kostenstelle
	, qry_Korridor_absolut.[DM Bereich]
	, qry_Korridor_absolut.ZUBA
	, qry_Korridor_absolut.Korridorstunden
	, ([qry_Korridor_absolut_Kreuztabelle]![Zeit]+[qry_Korridor_absolut_Kreuztabelle]![Differenz absolut])
PIVOT Format([Periode],"mmm") In ("Jän","Feb","Mär","Apr","Mai","Jun","Jul","Aug","Sep","Okt","Nov","Dez");  
Dr.Cornwallis
Dr.Cornwallis 19.09.2016 um 14:38:08 Uhr
Goto Top
Moin,

auf die Idee die Abfrage mal in SQL Ansicht zu betrachten hätte ich auch kommen können*shame*,dann bräuchte man nur copy/paste+ Feldnamen anpassen....
Bei deinem Code haben nur 2 Klammern gefehlt und schon hat es geklappt.

Sum(qry_Korridor_absolut.Absolut) AS [Differenz Absolut], Sum(qry_Korridor_absolut.Absolut)+(qry_Korridor_absolut.Korridorstunden) AS 

Vielen Dank für deine Hilfe!