Announcement

Collapse
No announcement yet.

zugriff auf neue Ausdrücke

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • zugriff auf neue Ausdrücke

    Hallo zusammen,

    ich habe da folgendes Problem:

    in der Abfrage wird ein Ausdruck1 erstellt dieselbe Abfrage erzeugt einen Ausdruck zwei der auf den Ausdruck zwei zugreifen muss. beim AUsführen der Abfrage wird ein fehler ausgegeben der beinhaltet, dass Ausdruck 1 ein ungültiger Spaltenname wäre. Wie Kann ich dieses Problem lösen.

  • #2
    Spaltenamen vergeben?

    etwa so:

    Ausdruck1 AS <SpaltenName>

    Comment


    • #3
      Verstehe deine Frage nicht ganz. Ein konkretes SQL-Statement als Beispiel wäre hier sehr hilfreich.

      bye,
      Helmut

      Comment


      • #4
        ich versuche zu reduzieren

        entschuldigt bitte. Ich versuchte das Problem zu vereinfachen.

        select A, B, Case when A <> 0 then 10 end as C,
        Case when B <>0 then C as D

        from TabelleA

        Comment


        • #5
          z.B. so:

          Code:
          select A
                  , B
                  , Case when A <> 0 then 10 end as C, 
                  , Case when B <>0 then Case when A <> 0 then 10 end  as D
          from TabelleA

          Comment


          • #6
            Ok das hatte ich auch stehen meldet mir aber ungültiger spaltenname

            Comment


            • #7
              ich muss leider gesteehen dass ich die Abfragen von access nach SQL server bringen muss. Die Access Abfragen sind aber so verschachtelt das das ganze ein graus ist.

              Comment


              • #8
                Code:
                USE tempDB;
                CREATE TABLE  #TabelleA
                  ( A Int
                   , B INT
                   )
                ;
                INSERT INTO #TabelleA (A, B) VALUES (0, 0);
                INSERT INTO #TabelleA (A, B) VALUES ( 1, 0);
                INSERT INTO #TabelleA (A, B) VALUES ( 0, 1);
                INSERT INTO #TabelleA (A, B) VALUES ( 1, 1);
                
                SELECT A   , B
                   , CASE WHEN A <> 0 
                              THEN 10 
                     END			  AS C
                   , CASE WHEN B <>0 
                             THEN CASE    WHEN A <> 0 
                		   THEN 10 
                		   ELSE NULL
                	      END 
                            ELSE NULL
                    END		                 AS D
                FROM #TabelleA;
                
                DROP TABLE #TabelleA;
                liefert

                A B C D
                ----------- ----------- ----------- -----------
                0 0 NULL NULL
                1 0 10 NULL
                0 1 NULL NULL
                1 1 10 10

                Comment

                Working...
                X