Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Pembaruan T-SQL dengan SUM dan Grup BY

Jika kueri ini mengembalikan informasi yang Anda inginkan:

SELECT *, LINE_TOTAL = SUM(l.LINE_TOTAL) OVER 
    (PARTITION BY l.IC_PO_HEADER, l.RELEASE_NUMBER)
  FROM dbo.PO_HEADER AS h
  INNER JOIN dbo.PO_LINE AS l
  ON h.IC_PO_HEADER = l.IC_PO_HEADER 
  AND h.RELEASE_NUMBER = l.RELEASE_NUMBER;

Maka ini mungkin kueri UPDATE yang Anda inginkan:

;WITH x AS
(
  SELECT h.TOTAL, lt = SUM(l.LINE_TOTAL) OVER 
    (PARTITION BY l.IC_PO_HEADER, l.RELEASE_NUMBER)
  FROM dbo.PO_HEADER AS h
  INNER JOIN dbo.PO_LINE AS l
  ON h.IC_PO_HEADER = l.IC_PO_HEADER 
  AND h.RELEASE_NUMBER = l.RELEASE_NUMBER
)
UPDATE x SET TOTAL = lt;

Saya harus setuju dengan Gordon, pengelompokan Anda tampaknya sangat aneh. Saya tidak yakin apakah saya melakukannya dengan benar (itulah sebabnya saya sangat menyarankan Anda menjalankan SELECT terlebih dahulu).



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Dapatkan semua poin (lingkaran dengan jari-jari), yang tumpang tindih dengan titik yang diberikan

  2. Cara Mengirim Hasil Kueri Email sebagai Lampiran di SQL Server (T-SQL)

  3. ORDER BY dalam tampilan Sql Server 2008

  4. SQL pagination mengembalikan jumlah total record sebelum pagination

  5. Mengapa EF menghasilkan kueri SQL dengan pemeriksaan nol yang tidak perlu?