Announcement

Collapse
No announcement yet.

Update mit Ergebnis aus "select count(Anzahl),Jahr"

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

  • Update mit Ergebnis aus "select count(Anzahl),Jahr"

    Hallo,

    folgendes Problem:

    Wir haben einen SQL-Server 2005, auf dem wir eine Tabelle updaten wollen. Gefüttert werden soll er mit dem Ergebnis eines Selects, "count(Anzahl),Jahr ... group by Jahr"

    Als Vorgabe haben wir sowas in der Art:

    5 2001
    7 2001
    2 2001
    5 2002
    6 2002
    7 2002

    Ergbnis der Abfrage ist in der Art:

    14 2001
    18 2002

    Nun möchten wir eine Tabelle updaten, in der 2001 als "where Jahr=" stünde - und in eine Spalte "Anzahl" soll "14" eingetragen werden.

    Selbiges eben mit 2002, dort soll 18 eingetragen werden usw. Also die Gesamtanzahl zu der jeweiligen Jahreszahl.

    Könnt Ihr mir folgen?

    Problem: MSSQL 2000 scheint noch kein "with" zu kennen, sonst hätten wir das Problem flot erledigt....

    Handicap 2 ist, daß die Jahreszahl natürlich nicht sooo schön aussieht.. eigentlich arbeiten wir mit einem Datum, daß mit knuffigen Substrings zusammengebastelt wird... Aber das dürfte ja erstmal egal sein... flööööötttt.....

    Grüße, Avhy.

  • #2
    probiers mal mit
    sum(Anzahl),Jahr ... group by Jahr

    Gruß frauwue
    docendo discimus

    Comment


    • #3
      Code:
      USE tempDB;
      
      CREATE TABLE #Table_A
       ( Anzahl INT
        , Jahr	INT
      );
      
      INSERT INTO #Table_A (Anzahl, jahr)VALUES (5, 2001)
      INSERT INTO #Table_A (Anzahl, jahr)VALUES (7, 2001)
      INSERT INTO #Table_A (Anzahl, jahr)VALUES (2, 2001)
      INSERT INTO #Table_A (Anzahl, jahr)VALUES (5, 2002)
      INSERT INTO #Table_A (Anzahl, jahr)VALUES (6, 2002)
      INSERT INTO #Table_A (Anzahl, jahr)VALUES (7, 2002)
      
      CREATE TABLE #Table_B
      ( SumAnz INT
      , Jahr	INT
      );
      
      INSERT INTO #Table_B 
      SELECT SUM(Anzahl),Jahr FROM #Test_A GROUP by Jahr
      
      SELECT * FROM #Table_B
      
      DROP TABLE #Table_B
      DROP TABLE #Table_A

      Comment


      • #4
        So in der Art hätte ich's auch gemacht - aber ich konnte meinen Kollegen noch nicht von einer temp.Tabelle überzeugen...

        Meine Lösung wäre ja, mit einem View zu arbeiten... fände ich auch äußerst charmant....

        Zumal diese Abfrage immer wieder, mit sich ändernden Werten, benötigt wird. Mit einem view wär's dynamisch.

        Comment


        • #5
          Meinst Du es so?

          Update tabelle2 set tabelle2.anzahl=(select sum(tabelle1.anzahl) where tabelle1.jahr=tabelle2.Jahr)

          Gruß frauwue
          docendo discimus

          Comment

          Working...
          X