Seite 1 von 1

[GELÖST] Tabelle vereinfachen & zusammenführen

Verfasst: Mo, 19.12.2011 18:55
von geimist
Hallo zusammen,

aus einer importierten CSV-Datei möchte ich die Daten zur besseren Verwendung aufbereiten.

Code: Alles auswählen

Format der vorhandenen Daten:

ID    Datum       Aufgabe     Beschreibung
--------------------------------------------
1     1.1.12        1        Beschr. Aufg. 1
2     1.1.12        2        Beschr. Aufg. 2
3     1.1.12        3        Beschr. Aufg. 3
4     8.1.12        1        Beschr. Aufg. 1
5    15.1.12        1        Beschr. Aufg. 1
6    15.1.12        2        Beschr. Aufg. 2

Beispiel für das gewünschte Ergebnis:

Datum      Aufgabe 1            Aufgabe 2            Aufgabe 3
----------------------------------------------------------------------
 1.1.12    Beschr. Aufg. 1     Beschr. Aufg. 2    Beschr. Aufg. 3
 8.1.12    Beschr. Aufg. 1
15.1.12   Beschr. Aufg. 1     Beschr. Aufg. 2 
Ich habe dazu für jede Aufgabe eine Abfrage erzeugt. Damit habe ich das Datum (wie gewünscht) immer nur noch jeweils in einem Datensatz. Dafür habe ich aber nun 3 verschiedene Abfragen die ich in einer Tabelle (Abfrage/View) zusammenführen möchte.

Mache ich dies in einer neuen Abfrage (setze das Datum jeweils in Beziehung zueinander), so werden mir nur die Datensätze ausgegeben, in denen alle Aufgaben Felder Daten enthalten. In dem Beispiel wäre das nur der 1.1.12, aber natürlich möchte ich alle Datensätze sehen, auch wenn ein Aufgabenfeld leer ist.

Für einen hilfreichen SQL-Tipp wäre ich euch sehr dankbar

Re: Tabelle vereinfachen & zusammenführen

Verfasst: Mo, 19.12.2011 19:18
von F3K Total
Hallo,
ein ähnliches Thema wurde hier schon mal zur Gänze behandelt.
Viel Erfolg
Gruß R

Re: Tabelle vereinfachen & zusammenführen

Verfasst: Mo, 19.12.2011 22:11
von geimist
Danke für den Tipp, ich hatte nichts passendes gefunden.
Mangels meiner Fähigkeiten, kann ich es leider nicht auf mein Beispiel umsetzen. Dort wird ja mit 2 Quelltabellen gearbeitet. Ich kann es aber nicht auf eine (wie in meinem Fall) umsetzen.

Meinen Versuch findet man in der Anlage. Das Datum kommt halt immer mehrfach und die Spalten gibt es auch noch nicht wie gewünscht aus...
Vielleicht kann sich ja doch noch jemand meiner erbarmen :)

Re: Tabelle vereinfachen & zusammenführen

Verfasst: Mo, 19.12.2011 23:00
von F3K Total
falsche Datei gelöscht
Gruß R

Re: Tabelle vereinfachen & zusammenführen

Verfasst: Mo, 19.12.2011 23:16
von geimist
:D :D VIELEN DANK - Du bist der Retter der Ratlosen :D :D
Dürfte ich noch eine kleine Frage anhängen?
Ich würde gerne noch eine weitere Spalte mit einem Defaultwert von 00:15:00 (15 Minuten) anhängen. Geht das hier überhaupt? Ist ja eigentlich lediglich eine Abfrage und keine Eingabe...

Re: Tabelle vereinfachen & zusammenführen

Verfasst: Mo, 19.12.2011 23:25
von F3K Total
hier stand Quatsch
Nacht R

Re: Tabelle vereinfachen & zusammenführen

Verfasst: Mo, 19.12.2011 23:32
von geimist
Vielen Dank. Ich werde jetzt noch mal alles in der richtigen DB umsetzen.

GutN8

Re: Tabelle vereinfachen & zusammenführen

Verfasst: Di, 20.12.2011 20:39
von F3K Total
Hallo geimist,
habe mir die Sache nochmal genauer angesehen, mein gestriger Vorschlag funktioniert nicht. Bei genauer Betrachtung habe ich festgestellt, dass die erste Beschreibung von Aufgabe 1 für alle Tage eingetragen wurde und die Zeiten unveränderbar waren.
Ich habe daher noch einige andere Änderungen durchgeführt:
1.) Der SQL-Code hat sich deutlich geändert:

Code: Alles auswählen

SELECT distinct "Datum",
case "Datum" in (Select distinct "Datum" from "Tabelle1" where "Aufgabe" = 1) When true then (select"Beschreibung" from "Tabelle1" where "Aufgabe"=1 and "Datum"="T1"."Datum") else null end  as "Aufgabe 1",
case "Datum" in (Select distinct "Datum" from "Tabelle1" where "Aufgabe" = 1) When true then (select"Zeitdauer" from "Tabelle1" where "Aufgabe"=1 and "Datum"="T1"."Datum") else null end  as "Zeit 1",
case "Datum" in (Select distinct "Datum" from "Tabelle1" where "Aufgabe" = 2) When true then (select"Beschreibung" from "Tabelle1" where "Aufgabe"=2 and "Datum"="T1"."Datum") else null end  as "Aufgabe 2",
case "Datum" in (Select distinct "Datum" from "Tabelle1" where "Aufgabe" = 2) When true then (select"Zeitdauer" from "Tabelle1" where "Aufgabe"=2 and "Datum"="T1"."Datum") else null end  as "Zeit 2",
case "Datum" in (Select distinct "Datum" from "Tabelle1" where "Aufgabe" = 3) When true then (select"Beschreibung" from "Tabelle1" where "Aufgabe"=3 and "Datum"="T1"."Datum") else null end  as "Aufgabe 3",
case "Datum" in (Select distinct "Datum" from "Tabelle1" where "Aufgabe" = 3) When true then (select"Zeitdauer" from "Tabelle1" where "Aufgabe"=3 and "Datum"="T1"."Datum") else null end  as "Zeit 3",
case "Datum" in (Select distinct "Datum" from "Tabelle1" where "Aufgabe" = 4) When true then (select"Beschreibung" from "Tabelle1" where "Aufgabe"=4 and "Datum"="T1"."Datum") else null end  as "Aufgabe 4",
case "Datum" in (Select distinct "Datum" from "Tabelle1" where "Aufgabe" = 4) When true then (select"Zeitdauer" from "Tabelle1" where "Aufgabe"=4 and "Datum"="T1"."Datum") else null end  as "Zeit 4",
case "Datum" in (Select distinct "Datum" from "Tabelle1" where "Aufgabe" = 5) When true then (select"Beschreibung" from "Tabelle1" where "Aufgabe"=5 and "Datum"="T1"."Datum") else null end  as "Aufgabe 5",
case "Datum" in (Select distinct "Datum" from "Tabelle1" where "Aufgabe" = 5) When true then (select"Zeitdauer" from "Tabelle1" where "Aufgabe"=5 and "Datum"="T1"."Datum") else null end  as "Zeit 5"
from "Tabelle1" as "T1"
2.) Eine Spalte "Zeitdauer" in Tabelle1 eingefügt.
3.) Die Spalte "ID" in Integer/Autowert geändert.
4.) Damit die Zeitspalte defaultmäßig mit 15 Min gefüllt wird, habe ich unter Extras/SQL... einmalig folgenden Befehl ausgeführt:

Code: Alles auswählen

alter table "Tabelle1" alter column "Zeitdauer" set default '00:15:00'
Dies führt dazu, das eben diese 15 Min beim Anlegen eines neuen Datensatzes defaultmäßig eingetragen werden.
5.) Ein Formular "Tabelle1" erstellt, um Punkt 4 auszuprobieren.

So, nun läufts, anbei die geänderte Datei.
Viel Erfolg damit
Gruß R

Re: Tabelle vereinfachen & zusammenführen

Verfasst: Di, 20.12.2011 21:35
von geimist
Als ich es versucht habe, für meine Verwendung zu übernehmen, hatte ich auch schon ein paar Merkwürdigkeiten entdeckt - wollte aber noch mal genauer probieren. Vielen Dank auch für die neue Version - werde ich mir mal zu Gemüte führen.

Re: Tabelle vereinfachen & zusammenführen

Verfasst: Di, 20.12.2011 23:11
von geimist
:D !!!!! PERFECT !!!!! :D

Vielen Dank. Du hast mir sehr geholfen.