W każdym wierszu mam jedną wielkości kolumn (pływak) i identyfikator (int). Chcę więc złączyć, aby dodać sumę ilości z tym samym identyfikatorem z Tabela1 do wielkości tabeli2 w inwentarzu. Przykład.

Moje informacje SQL.

    Table 1                   Table 2
 id   quantities           id    quantities
 1        1                 1         0  
 1        2                 2         0
 2        4                 3         0 
 2        1         
 3        7

Chcę sumować ilości z tabeli 1 i z połączeniem, aby dodać go w tabeli 2

Pożądany wynik do tabeli 2

    Table 1                   Table 2
 id   quantities           id    quantities
 1        1                 1         3  
 1        2                 2         5
 2        4                 3         7
 2        1         
 3        7

Próbuję tego kodu, ale dodaje tylko pierwszy wiersz

update i set quantities=i.quantities+sum(s.rent) from inventory i join temp_rent s on i.id=s.itemid
1
Dimis 15 luty 2017, 22:51

2 odpowiedzi

Najlepsza odpowiedź

Proste połączenie i agregacja powinna wykonać sztuczkę

Update Table2
   set quantities = B.Total
 From  Tabel2 A
 Join (Select ID
             ,Total=sum(quantities)
       From  Table1
       Group By ID
      ) B
  on (A.ID=B.ID)
1
John Cappelletti 15 luty 2017, 20:11

To powinno zrobić ...

CREATE TABLE #table1 ( id INT, quantities INT)

INSERT INTO #table1(id, quantities)
VALUES (1, 1)   
INSERT INTO #table1(id, quantities)
VALUES (1, 2)       
INSERT INTO #table1(id, quantities)
VALUES (2, 4)       
INSERT INTO #table1(id, quantities)
VALUES (2, 1)       
INSERT INTO #table1(id, quantities)
VALUES (3, 7)       

CREATE TABLE #table2 ( id INT, quantities INT)

INSERT INTO #table2(id, quantities)
VALUES (1, 0)   
INSERT INTO #table2(id, quantities)
VALUES (2, 0)       
INSERT INTO #table2(id, quantities)
VALUES (3, 0)   

UPDATE #table2
SET quantities = t1.quantities
FROM #table2 t2
    JOIN (
            SELECT id, SUM(quantities) AS quantities
            FROM #table1 
            GROUP BY id
        ) t1 ON
        t2.id = t1.id

DROP TABLE #table1
DROP TABLE #table2
0
manderson 15 luty 2017, 20:16