Re: Problem mit UNION Select
Mein PC ist noch mit Lösung 1 beschäftigt und pfeift in höchsten Tönen
CPU Auslastung. Fehlermeldung ist aber keine gekommen. |
Re: Problem mit UNION Select
Deshalb eignet sich bei diesem Problem auch die Lösung mit der SP
|
Re: Problem mit UNION Select
Lösung 1 hat leider nicht Funktioniert. Ich musste es Abbrechen. Anschließend war DB defect.
|
Re: Problem mit UNION Select
Lösung 2?
Gehe ich richtig davon aus Lösung 2 als neu Procedures im IB Expert einzustellen? |
Re: Problem mit UNION Select
Ja. am Besten Skript starten
|
Re: Problem mit UNION Select
muss erst mal PC neu Booten.
Firebird-Server Startet nicht mehr. :coder2: Ich melde mich morgen zu lösung 2 vielen Dank ersteinmal |
Re: Problem mit UNION Select
Liste der Anhänge anzeigen (Anzahl: 1)
So nachdem du nun ordentliche Beispieldaten geliefert hast, habe ich mir das nochmal angesehen.
1. leg bitte in deinen Tabellen auch einen Primary Key an (benutze Contraints!) 2. benutze bitte adiquate Datentypen für deine Tabellenspalten, also für dein Datum auch den Typ Date 3. benutze immer für lange Texte den Typ VARCHAR, der verbraucht nur so viel Speicher wie benötigt wird. CHAR benutzt immer die komplette Größe Hier mal ein Vorschlag für deine Tabellenstruktur...
SQL-Code:
Dabei wird jetzt keine Tag-, Monat-, Jahr-Spalte mehr benötigt, da diese Daten aus dem Datum extrahiert werden können.
CREATE TABLE TEMP2007(
DATUM DATE NOT NULL, PERSONALNR CHAR(4) NOT NULL, URLAUB CHAR(4), KURZZEICHEN CHAR(2) NOT NULL, MEMO CHAR(1), MEMOTEXT VARCHAR(250), AENDERUNG DATE, AENDERUNGVON CHAR(10), CONSTRAINT PK_TEMP2007_1 PRIMARY KEY (DATUM, PERSONALNR) ); Stichwort: Redundanz! Hier mal ein Vorschlag für deine gewünschte Auswertung...
SQL-Code:
Bedenke aber dabei, dass es pro Datum+Person jetzt nur noch eine Zeile geben kann, dies wird durch den angelegten Primary Key eingehalten.
SELECT EXTRACT(YEAR FROM datum) jahr,
EXTRACT(MONTH FROM datum) monat, personalnr, MAX(CASE WHEN EXTRACT(DAY FROM datum) = 1 THEN kurzzeichen ELSE NULL END) AS t1, MAX(CASE WHEN EXTRACT(DAY FROM datum) = 2 THEN kurzzeichen ELSE NULL END) AS t2, MAX(CASE WHEN EXTRACT(DAY FROM datum) = 3 THEN kurzzeichen ELSE NULL END) AS t3, MAX(CASE WHEN EXTRACT(DAY FROM datum) = 4 THEN kurzzeichen ELSE NULL END) AS t4, MAX(CASE WHEN EXTRACT(DAY FROM datum) = 5 THEN kurzzeichen ELSE NULL END) AS t5, MAX(CASE WHEN EXTRACT(DAY FROM datum) = 6 THEN kurzzeichen ELSE NULL END) AS t6, MAX(CASE WHEN EXTRACT(DAY FROM datum) = 7 THEN kurzzeichen ELSE NULL END) AS t7, MAX(CASE WHEN EXTRACT(DAY FROM datum) = 8 THEN kurzzeichen ELSE NULL END) AS t8, MAX(CASE WHEN EXTRACT(DAY FROM datum) = 9 THEN kurzzeichen ELSE NULL END) AS t9, MAX(CASE WHEN EXTRACT(DAY FROM datum) = 10 THEN kurzzeichen ELSE NULL END) AS t10, MAX(CASE WHEN EXTRACT(DAY FROM datum) = 11 THEN kurzzeichen ELSE NULL END) AS t11, MAX(CASE WHEN EXTRACT(DAY FROM datum) = 12 THEN kurzzeichen ELSE NULL END) AS t12, MAX(CASE WHEN EXTRACT(DAY FROM datum) = 13 THEN kurzzeichen ELSE NULL END) AS t13, MAX(CASE WHEN EXTRACT(DAY FROM datum) = 14 THEN kurzzeichen ELSE NULL END) AS t14, MAX(CASE WHEN EXTRACT(DAY FROM datum) = 15 THEN kurzzeichen ELSE NULL END) AS t15, MAX(CASE WHEN EXTRACT(DAY FROM datum) = 16 THEN kurzzeichen ELSE NULL END) AS t16, MAX(CASE WHEN EXTRACT(DAY FROM datum) = 17 THEN kurzzeichen ELSE NULL END) AS t17, MAX(CASE WHEN EXTRACT(DAY FROM datum) = 18 THEN kurzzeichen ELSE NULL END) AS t18, MAX(CASE WHEN EXTRACT(DAY FROM datum) = 19 THEN kurzzeichen ELSE NULL END) AS t19, MAX(CASE WHEN EXTRACT(DAY FROM datum) = 20 THEN kurzzeichen ELSE NULL END) AS t20, MAX(CASE WHEN EXTRACT(DAY FROM datum) = 21 THEN kurzzeichen ELSE NULL END) AS t21, MAX(CASE WHEN EXTRACT(DAY FROM datum) = 22 THEN kurzzeichen ELSE NULL END) AS t22, MAX(CASE WHEN EXTRACT(DAY FROM datum) = 23 THEN kurzzeichen ELSE NULL END) AS t23, MAX(CASE WHEN EXTRACT(DAY FROM datum) = 24 THEN kurzzeichen ELSE NULL END) AS t24, MAX(CASE WHEN EXTRACT(DAY FROM datum) = 25 THEN kurzzeichen ELSE NULL END) AS t25, MAX(CASE WHEN EXTRACT(DAY FROM datum) = 26 THEN kurzzeichen ELSE NULL END) AS t26, MAX(CASE WHEN EXTRACT(DAY FROM datum) = 27 THEN kurzzeichen ELSE NULL END) AS t27, MAX(CASE WHEN EXTRACT(DAY FROM datum) = 28 THEN kurzzeichen ELSE NULL END) AS t28, MAX(CASE WHEN EXTRACT(DAY FROM datum) = 29 THEN kurzzeichen ELSE NULL END) AS t29, MAX(CASE WHEN EXTRACT(DAY FROM datum) = 30 THEN kurzzeichen ELSE NULL END) AS t30, MAX(CASE WHEN EXTRACT(DAY FROM datum) = 31 THEN kurzzeichen ELSE NULL END) AS t31 FROM temp2007 GROUP BY EXTRACT(YEAR FROM datum), EXTRACT(MONTH FROM datum), personalnr ORDER BY EXTRACT(YEAR FROM datum), EXTRACT(MONTH FROM datum), personalnr Geänderte Datenbank habe ich angehängt. Hoffe das hilft dir weiter... Gruss Thorsten |
Re: Problem mit UNION Select
Hallo Zusammen
DB ist wieder OK ich habe Lösung 2 getestet. Fehler es wird "SET TERM ^" angemeckert :gruebel: in einer 2. DB habe ich die Struktur wie beschrieben geändert und den SQL Befehl ausgeführt. Es kommt kein Fehler aber auch keine Daten. Ich will aber nochmal Prüfen. Möglicherweise habe ich einen Fehler reingebastelt. Ich melde mich gegen Abend noch einmal. Vielen Dank bis dahin |
Re: Problem mit UNION Select
Unter Nützliches->Skript ausführen
|
Re: Problem mit UNION Select
Hee ich bin ganz toll Stolz auf Euch
Lösung 2 von mkinzler und Lösung von Thorsten Zeigen mir die Daten schon mal im Querformat an. Einen Plan, wie ich das auf 2 Monate umsetzten kann hätte ich auch schon. :firejump: :cheers: Echt super Beim nächsten mal werde ich gleich versuchen meine Fragen richtig darzustellen. Ich kann die Frage ersteinmal als Beantwortet markieren. Vielen, Vielen Dank nochmal :hello: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:25 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