PDA

Vollständige Version anzeigen : Syntaxfehler in Sum(IIf(Nz([BeSeEnde];0)> 300;300;Nz([BeSeEnde];0)))


Mazi M.
23.03.2006, 18:16
Hallo Leute, ich brauche mal wieder eure Hilfe. Ich habe eine Tabelle mit Sitzungsdaten, die wie folgt aufgebaut ist:

BeSe_Id = Primärschlüssel
BeSe_Teilnehmer = ID des Teilnehmers
BeSe_Seite = ID der betrachteten Seite
BeSe_Ende = Dauer der Sitzung in Sekunden

Ziel ist es die Summe der Sitzungsdauer für bestimmte Teilnehmer (WHERE BeTe_Teilnehmer in(xyz)) und bestimmte Seiten (WHERE BeSe_Seite in(zxy)) zu bestimmen.
Nun soll verhindert werden, dass Auswertungsdaten verzerrt wiedergegeben werden, wenn jemand seinen Rechner laufen lässt und sich nicht ausloggt. Daher sollen alle Einträge, wo BeSe_Ende größer als 300 (= 5 Minuten) mit 300 bewertet werden.

Nun habe ich hier im Forum folgenden Tipp bekommen:

SELECT
Sum(IIf(Nz([BeSeEnde];0)>300;300;Nz([BeSeEnde];0)))
FROM TABELLENNAME

Ich habe das ganze wie folgt an mein Problem angepasst:

SELECT Sum(IIf(Nz([BeSe_Ende];0)>300;300;Nz([BeSe_Ende];0)))
FROM Lp1BearbeitetSeiten

Leider klappt es so noch nicht ganz. Er meldet mir unter Access 2003 aber jedesmal "Syntaxfehler in Abfrageausdruck ...".

Ich denke da ist auch ein Rechtschreibfehler bei dem "IIf" (mit 2 "I"). Allerdings funktioniert es auch mit nur einem "I" nicht. Da ich mit dieser Art von Befehlen noch nicht gearbeitet habe, weiß ich auch nicht, woran es noch liegen könnte. Kann mir da jemand helfen???

Bin für jede Hilfe dankbar. Schönen abend,

Mazi

kama
23.03.2006, 18:20
ersetze als erstes ; durch ,
iif ist richtig, programiersprachen haben eine eigene rechtschreibung

rapunzel
23.03.2006, 18:22
@Kama: der Code stammt von Nouba aus diesem Thread http://www.ms-office-forum.net/forum/showthread.php?t=182705 - kann mir schwer vorstellen, daß das nicht stimmen sollte?

@Mazi: bitte keine Doppelposts, mach einfach in Deinem alten Thread weiter ;)


@Norbert: :knuddel:, nobody is perfect - Du irrst Dich, ich jedoch verzapf manchmal völligen Unsinn :p

Nouba
23.03.2006, 18:30
Doch, meine Zeichensetzung war in dem Thread falsch. :(

Mazi M.
23.03.2006, 18:59
Suuuuuper, vielen Dank an alle. Das klappt jetzt einwandfrei und hilft mir sehr viel weiter.

Sorry wegen des Doppelpostings, aber ich hatte auf meine Nachfragen keine Antwort mehr bekommen, weshalb ich es auf diesem Weg probiert habe.

Besten Dank,

Mazi

Mazi M.
23.03.2006, 19:17
Hallo Leute,

also vorweg die gute Nachricht: Wenn ich den Code direkt in Access als Abfrage verwende funktioniert es. Jedoch soll die Abfrage aus einer Coldfusion-Anwendung heraus gestartet werden um auf die DB zuzugreifen. Dort erhalte ich dann immer die Fehlermeldung:

"Error Executing Database Query. Undefinierte Funktion 'Nz' in Ausdruck."

Das verwundert mich doch sehr, da es direkt in Access funktioniert. Mit der DB arbeite ich schon die ganze Zeit und alle anderen Abfragen funktionieren einwandfrei. Nur mit dem Ausdruck "nz(...)" kommt er wohl irgendwie nicht zurecht. Als Treiber wird "Microsoft Access with Unicode" verwendet.

Weiß jemand Rat?

Mazi

Mazi M.
23.03.2006, 19:31
Auch wenn ich von dem Code wenig Ahnung habe, habe ich es doch mit ein bißchen Ausprobieren hinbekommen:

Sum(IIf([BeSe_Ende] > 300, 300, [BeSe_Ende]))
FROM ...

Vielen Dank nochmals an alle,

Mazi