[de-users] Probleme mit SQL-Statements
Hallo liebe User, ich habe in base (OpenOffice 2.4) Probleme mit 2 SQL Befehlen a) SELECT Projekt.Bezeichnung, Projekt.Auftragswert, Projekt.bezahlt, Auftragswert-IIf(IsNull(bezahlt),0,bezahlt) AS AussenstandFROM Projekt;hier akzeptiert base die IIF Anweisung nicht. b)SELECT Bezeichnung, Beginn, Ende, Ende-Beginn AS DauerFROM ProjektWHERE Ende IS NOT NULL;bei dieser Anweisung gibt mir die Datenbank eine Fehlermeldung aus, das die Datentypen nicht in Ordnung wären. Habe beide Attribute als Datumswerte mit dem gleichen Format definiert. Vielen Dank für Eure HilfeHolger DeitersAm Alten Freyhof 16D-30900 WedemarkTel.: 0049-(0)5130-375511Fax 0049-(0)5130-375591 _ Trete mit Deinem inneren Athleten in Verbindung. Beantworte die Fragen! http://messenger.live.de/mein/mein-messenger-animoticons.aspx
Re: [de-users] Probleme mit SQL-Statements
Hallo Holger, Hallo liebe User, ich habe in base (OpenOffice 2.4) Probleme mit 2 SQL Befehlen Du arbeitest mit der eingebauten HSQL-Datenbank? a) SELECT Projekt.Bezeichnung, Projekt.Auftragswert, Projekt.bezahlt, Auftragswert-IIf(IsNull(bezahlt),0,bezahlt) AS AussenstandFROM Projekt;hier akzeptiert base die IIF Anweisung nicht. Was soll diese Anweisung machen? Meinst Du die einfache IF()-Funktion z.B. von MySQL? Die gibt es bei HSQLDB nicht, wenn ich die Anleitung richtig durchblättert habe: http://hsqldb.org/web/hsqlDocsFrame.html (hier SQL Syntax wählen; ich finde ganz am Ende der Syntax nur IFNULL() oder die Möglichkeit, es mit CASE WHEN ... zu probieren. b)SELECT Bezeichnung, Beginn, Ende, Ende-Beginn AS DauerFROM ProjektWHERE Ende IS NOT NULL;bei dieser Anweisung gibt mir die Datenbank eine Fehlermeldung aus, das die Datentypen nicht in Ordnung wären. Habe beide Attribute als Datumswerte mit dem gleichen Format definiert. Bei Datumswerten kannst Du vermutlich nicht einfach mit der Subtraktion arbeiten: DATEDIFF wird Dir da eventuell dienlich sein. DATEDIFF(string, datetime1, datetime2) returns the count of units of time elapsed from datetime1 to datetime2. The string indicates the unit of time and can have the following values 'ms'='millisecond', 'ss'='second','mi'='minute','hh'='hour', 'dd'='day', 'mm'='month', 'yy' = 'year'. Both the long and short form of the strings can be used. Gruß Robert - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
RE: [de-users] Probleme mit SQL-Statements
Hallo Robert, vielen Dank für Deine Antwort. bei der ersten Abfrage dreht es sich um den Umgang mit sogenannten Nullwerten. Im Attribut bezahlt, dessen Werte vom Attribut Auftragswert abgezogen werden sollen, gibt es leere Datenfelder. Diese sollen durch die IF-Anweisung erkannt werden, wenn sie leer sind soll eine 0 eingesetzt werden, ansonsten soll der Wert aus dem Attribut bezahlt vom Auftragswert abgezogen werden.Ich werde mal CASE probieren. Beim zweiten Fall werde ich es mal mit DATEDIFF versuchen. Gruß Holger From: [EMAIL PROTECTED] To: users@de.openoffice.org Date: Wed, 27 Aug 2008 21:00:29 +0200 Subject: Re: [de-users] Probleme mit SQL-Statements Hallo Holger, Hallo liebe User, ich habe in base (OpenOffice 2.4) Probleme mit 2 SQL Befehlen Du arbeitest mit der eingebauten HSQL-Datenbank? a) SELECT Projekt.Bezeichnung, Projekt.Auftragswert, Projekt.bezahlt, Auftragswert-IIf(IsNull(bezahlt),0,bezahlt) AS AussenstandFROM Projekt;hier akzeptiert base die IIF Anweisung nicht. Was soll diese Anweisung machen? Meinst Du die einfache IF()-Funktion z.B. von MySQL? Die gibt es bei HSQLDB nicht, wenn ich die Anleitung richtig durchblättert habe: http://hsqldb.org/web/hsqlDocsFrame.html (hier SQL Syntax wählen; ich finde ganz am Ende der Syntax nur IFNULL() oder die Möglichkeit, es mit CASE WHEN ... zu probieren. b)SELECT Bezeichnung, Beginn, Ende, Ende-Beginn AS DauerFROM ProjektWHERE Ende IS NOT NULL;bei dieser Anweisung gibt mir die Datenbank eine Fehlermeldung aus, das die Datentypen nicht in Ordnung wären. Habe beide Attribute als Datumswerte mit dem gleichen Format definiert. Bei Datumswerten kannst Du vermutlich nicht einfach mit der Subtraktion arbeiten: DATEDIFF wird Dir da eventuell dienlich sein. DATEDIFF(string, datetime1, datetime2) returns the count of units of time elapsed from datetime1 to datetime2. The string indicates the unit of time and can have the following values 'ms'='millisecond', 'ss'='second','mi'='minute','hh'='hour', 'dd'='day', 'mm'='month', 'yy' = 'year'. Both the long and short form of the strings can be used. Gruß Robert - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] _ MSN Video: Videoclips im Messenger? Ausprobieren und gemeinsam Spaß haben! http://messenger.live.de/funktionen/spiele_msnvideo.html