Information ausblenden
Willkommen im Forum für alle Datenbanken! Registriere Dich kostenlos und diskutiere über DBs wie Mysql, MariaDB, Oracle, Sql-Server, Postgres, Access uvm

Sichten (Zählfehler bei Funktionsargument)

Dieses Thema im Forum "Microsoft SQL Server" wurde erstellt von marja, 20 September 2012.

  1. marja

    marja Benutzer

    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
     
  2. Tommi

    Tommi Datenbank-Guru

    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
     
  3. ukulele

    ukulele Datenbank-Guru

    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.
     
  4. ukulele

    ukulele Datenbank-Guru

    PS an Tommi: CASE TagWert1 WHEN 'KB' THEN müsste auch gehen.
     
  5. Tommi

    Tommi Datenbank-Guru

    @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 :)
     
  6. marja

    marja Benutzer

    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
     
  7. Tommi

    Tommi Datenbank-Guru

    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
     
    marja gefällt das.
  8. ukulele

    ukulele Datenbank-Guru

    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.
     
    PLSQL_SQL und marja gefällt das.
  9. marja

    marja Benutzer

    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.
     
Die Seite wird geladen...
Ähnliche Themen - Sichten (Zählfehler Funktionsargument)
  1. MR54-HH
    Antworten:
    3
    Aufrufe:
    2.248
  2. Ouvert
    Antworten:
    9
    Aufrufe:
    1.278
  3. ||HOOG||
    Antworten:
    14
    Aufrufe:
    1.316
  4. ukulele
    Antworten:
    1
    Aufrufe:
    1.641

Diese Seite empfehlen

  1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden