Sichten (Zählfehler bei Funktionsargument)

marja

Benutzer
Beiträge
7
Hallo zusammen,

ich bin ein Newbie, der derzeit langsam von Access zu MS SQL umsteigt.
Nun habe ich schon einige Bücher zu SQL gelesen, aber dennoch schlage ich mich kleinen Anfängerfehlern herum.

Mein aktuelles Problem ist eine Abfrage, die ich ja nicht 1zu1 von Access SQL zu MS SQL übernehmen kann.

Ursprünglich in Access:
gKapaWoche: Runden(Wenn[TagWert1]='KB';[TagWoche]-0,52;Wenn ... )
Eine verschachtelte Wenn Bedingung.

In MS SQL bekomme ich nun die Info Zählfehler bei Funktionsargument.

Ich hoffe der ein oder andere kann mir bitte helfen.

Nachtrag:
Wenn ich richtig gesehen habe, müsste ich mit Case arbeiten?
Bsp. ?
Code:
Case TagWert1
        When 'KB' Then 'TagWoche' + '-' + '0,52'
          When 'KB' Then 'TagWoche' + '-' + '0,52'
          Else 'TagWoche'

Ich gebe es direkt (noch) nicht direkt als SQL Code ein, sondern im MS SQL Server Management Studio unter Spalte, Alias etc.




Lieben Gruß

Marja
 
Werbung:

Tommi

Datenbank-Guru
Beiträge
290
Hallo Marja,

ich nehme an, du bekommst eine Fehlermeldung wegen dem Syntax.

Die Abfrage sähe so aus

Code:
SELECT (CASE WHEN [TagWert1]='KB' THEN [TagWoche]+' - '+'0,52' ELSE [TagWoche] END) as TagWoche FROM ....

Hinter das "FROM" gehört natürlich noch der Name der Tabelle aus der abgefragt wird

Viele Grüße,
Tommi
 

ukulele

Datenbank-Guru
Beiträge
4.702
Richtig, CASE ist hier das Mittel der Wahl. Allerdings braucht jede CASE Schleife ein END, du musst beim Verketten von Feldern auf Datentypen achten (Ist TagWoche vieleicht ein INT? Würde mann dann schlecht mit '-' verketten können.) und eventuell solltest du es auch klammern, dient der Überischt.
 

Tommi

Datenbank-Guru
Beiträge
290
@ukulele: ja, geht auch, aber man gewöhnt sich selbst ja an bestimmte Syntax, insbesondere wenn in der WHEN-Clausel logische Verknüpfungen erforderlich sind. Dann ist die vorgeschlagene Syntax sinnvoller. Aber Grundsätzliche hast du in diesem Fall Recht, geht hier auch so rum :)
 

marja

Benutzer
Beiträge
7
man ihr seid Super, vielen Dank. Werde ich mir gleich anschauen.

Nachgehakt: es steht ja viel im Netz und tolle hilfe bekommt man auch im Netz, könnt ihr mir ne gute Referenz für die Sichten sagen, in einem Buch "Richtig einsteigen - Datenbanken entwickeln mit SQWL 2008 R2" wird das Thema Sichten nur kurz angekratzt.

Lieben Gruß Marja
 

Tommi

Datenbank-Guru
Beiträge
290
Hallo Marja,

ich habe hier einen Link zu einer Microsoft-Seite, in der zumondest mal für den SQL-Server alle T-SQL-Befehle mit Erklärung und manchmal auch Anwendungsbeispielen aufgelistet sind:

http://msdn.microsoft.com/de-de/library/ms189826(v=sql.90).aspx

Diese Seite benutze ich selbst sehr häufig, insbesondere bei Befehlen, die man nicht regelmäßig verwendet.

Ein paar SQL-Abfragebeispiele (auch von Microsoft) findest du auf dieser Seite:
http://msdn.microsoft.com/de-de/library/ms187731.aspx

Ich hoffe, das hilft dir schon ein wenig weiter.

Viele Grüße,
Tommi
 

ukulele

Datenbank-Guru
Beiträge
4.702
Generell kann man eigentlich alles in Sichten packen was man auch als einzelnen SELECT ausführen kann. Nur eben keine Variablen deklarieren oder Schleifen ausführen. Daher wüsste ich jetzt auch keine spezielle Seite da ich immer erstmal den Select schreibe und das dann einfach beim Managementstudio in die View kopiere.

In vielen Fällen macht eine View Code auch übersichtlicher, wenn man z.B. viele Selects in einander verschachteln muss.
 
Werbung:

marja

Benutzer
Beiträge
7
Super, vielen Dank. Habe bis vor kurzem nur trockne Theorie gemacht (Buch gelesen) und nu möchte ich die erste Access DB über SQL laufen lassen. Naja am Anfang denke ich, wird es ein wenig ungewohnt sein. Habe mind. ca. 6 Jahre oder mehr mit Access gearbeitet. Nun was neues ;-)

Danke euch.
 
Oben