Zum Inhalt springen

Interbase SQL: Invalid Command. Data type unknown on line 1.


Gast King555

Empfohlene Beiträge

Was ist an folgender SQL Anweisung falsch? Ich finde einfach keinen Fehler. Wenn ich den ersten Block wegmache, ist der Fehler laut Meldung übrigens immer noch in Zeile 1.

select Datum, Stunden, 0 Ausfallstunden

from az_taeglich

where PERS_ID= 4

UNION ALL

select Ausfalltag, 0.0 Arbeitsstunden, Ausfallstunden

from Ausfallzeiten

where PERS_ID= 4

UNION ALL

select Datum, 0.0 Arbeitsstunden, 7 Ausfallstunden

from Feiertage

where Ausfallstunden = 8

UNION ALL

select Datum, 0.0 Arbeitsstunden, 3.5 Ausfallstunden

from Feiertage

where Ausfallstunden = 4

Link zu diesem Kommentar
Auf anderen Seiten teilen

Wenn ich hinter jede WHERE Bedingung ein Semikolon mache, dann kommt folgender Fehler:

Parsing Error Invalid statement on line 5: UNION ALL

Der Fehler liegt in folgender Anweisung:

select Ausfalltag, 0.0 Arbeitsstunden, Ausfallstunden

from Ausfallzeiten

where PERS_ID= 4;

Link zu diesem Kommentar
Auf anderen Seiten teilen

Original geschrieben von King555

Wenn ich hinter jede WHERE Bedingung ein Semikolon mache, dann kommt folgender Fehler:

Parsing Error Invalid statement on line 5: UNION ALL

Der Fehler liegt in folgender Anweisung:

select Ausfalltag, 0.0 Arbeitsstunden, Ausfallstunden

from Ausfallzeiten

where PERS_ID= 4;

Nicht hinter jede, sondern nur hinter die letzte...

JayN

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dann kommt wieder folgende Fehlermeldung:

Dynamic SQL Error

SQL error code = -104

Invalid Command

Data type unknown on line 1 : select Datum, Stunden, 0 Ausfallstunden

from az_taeglich

where PERS_ID= 4

UNION ALL

select Ausfalltag, 0 Arbeitsstunden, Ausfallstunden

from Ausfallzeiten

where PERS_ID= 4

UNION ALL

select Datum, 0 Arbeitsstunden, 7 Ausfallstunden

from Feiertage

where Ausfallstunden = 8

UNION ALL

select Datum, 0 Arbeitsstunden, 3.5 Ausfallstunden

from Feiertage

where Ausfallstunden = 4

Link zu diesem Kommentar
Auf anderen Seiten teilen

Wenn ich mehrere Tabellen mit UNION ALL zusammenführen möchte, müssen alle Felder der Tabellen doch gleich sein (oder nicht?). Da die Tabelle mit den Arbeitsstunden ja keine Ausfallstunden enthält (und andersrum), muss ich da halt als Default Wert 0 nehmen.

Als ich das mit den Feiertagen (die zwei Blöcke unten) noch nicht hatte, hat es übrigens noch bestens funktioniert!

Hier die Tabellen:

create table Ausfallzeiten (

ID integer not null,

Pers_ID integer not null,

Grund varchar(20) not null,

Ausfalltag date not null,

Ausfallstunden integer not null,

primary key (ID)

);

create table Arbeitsaufwand (

ID integer not null,

Pers_ID integer not null,

Projekt_ID integer not null,

Taetigkeit_ID integer not null,

Kunden_ID integer,

Beschreibung varchar(255),

Datum date not null,

von char(5) not null,

bis char(5) not null,

Arbeitsanteil double precision not null,

Aufwand double precision not null,

Fakturiert double precision,

primary key (ID),

foreign key (Projekt_ID) references Projekte,

foreign key (Pers_ID) references Personen,

foreign key (Taetigkeit_ID) references Taetigkeitsarten

);

create table Feiertage (

Datum date not null,

Ausfallstunden integer not null,

Beschreibung varchar(20),

primary key (Datum)

);

Dann gibt's da noch eine View, die wurde so erstellt:

create view az_taeglich

(Pers_ID, Datum, Anfang, Ende, Stunden)

as

select Pers_ID, Datum, Min(von), Max(bis), Sum(Aufwand)

from Arbeitsaufwand

group by Pers_ID, Datum;

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich habe immer noch keine Lösung gefunden, ihr ja scheinbar auch nicht. Daher poste ich jetzt nochmal was, was vielleicht bei einer Lösung des Problems hilft.

So sah die Anweisung aus, bevor ich was dran geändert habe, diese Anweisung funktionierte bestens:

select Datum, Stunden, 0 Ausfallstunden

from az_taeglich

where PERS_ID= 4

UNION ALL

select Ausfalltag, 0.0 Arbeitsstunden, Ausfallstunden

from Ausfallzeiten

where PERS_ID= 4

UNION ALL

select Datum, 0.0 Arbeitsstunden, Ausfallstunden

from Feiertage

Die aktuelle Anweisung habe ich ja bereits gepostet.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Original geschrieben von Darth_Zeus

7 ausfallstunden

8 ausfallstunden

????

in einer anweisung????

mag sich da der fehler verstecken????

Keine Ahnung, das frage ich ja euch.

Ich möchte überall da, wo eine "8" bei den Ausfallstunden steht, eine "7" einlesen. Das möchte ich erreichen. Diese Feiertagstabelle enthält nämlich für jeden Feiertag 8, bzw. 4 Ausfallstunden. Da ich aber nur 7 Stunden täglich arbeiten muss, würde durch die 8 meine Gesamtauswertung verfälscht. Daher möchte ich alle Datensätze mit Ausfallstunden = 8 als 7 Ausfallstunden einlesen.

Falls es so nicht geht, wie ich es gemacht habe, wie geht es dann?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Original geschrieben von Darth_Zeus

sags halt gleich..........

UPDATE Ausfallzeiten

SET Ausfallstunden = 7

WHERE Ausfallstunden = 8 AND Pers_ID = 4;

Fertig

So geht's nicht. Ich will ja nichts verändern in irgendwelchen Tabellen. Ich will nur eine Auswertung machen und dafür will ich überall da wo eine 8 steht eine 7 einlesen. Bei der Auswertung darf nichts an Daten verändert werden. Z.B. bei den Arbeitszeiten lese ich ja auch 0 Ausfallstunden ein, warum geht das in dem Fall nicht auch so ähnlich?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich hab's endlich geschafft! Es gab einen Konflikt zwischen zwei Datentypen, nämlich Integer und Float. So klappt die Anweisung:

select Datum, Stunden, 0 Ausfallstunden

from az_taeglich

where PERS_ID= 4

UNION ALL

select Ausfalltag, 0.0 Arbeitsstunden, Ausfallstunden

from Ausfallzeiten

where PERS_ID= 4

UNION ALL

select Datum, 0.0 Arbeitsstunden, 7 Ausfallstunden

from Feiertage

where Ausfallstunden = 8

UNION ALL

select Datum, 0.0 Arbeitsstunden, 3 Ausfallstunden

from Feiertage

where Ausfallstunden = 4;

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...