Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

cập nhật sql (giúp tôi)

Trước tiên, hãy tìm ra bản ghi nào cần được cập nhật:

select *
from tbl_order o
inner join tbl_group g on
    g.grp_id = o.grp_id
inner join tbl_indicator i on
    i.grp_nbr = g.grp_nbr
    and i.sect_nbr = g.sect_nbr
where
    g.indicat != i.indicat

Bây giờ, hãy sửa đổi truy vấn để cập nhật các bản ghi đó với grp_id chính xác. Lưu ý rằng tôi đã thêm một phép nối bổ sung vào bảng tbl_group với bí danh là "g2". Đây sẽ là nhóm chính xác.

update o set
    o.grp_id = g2.grp_id
from tbl_order o
inner join tbl_group g on
    g.grp_id = o.grp_id
inner join tbl_indicator i on
    i.grp_nbr = g.grp_nbr
    and i.sect_nbr = g.sect_nbr
inner join tbl_group g2 on
    g2.grp_nbr = i.grp_nbr
    and g2.sect_nbr = i.sect_nbr
    and g2.indicat = i.indicat
where
    g.indicat != i.indicat

Lưu ý rằng do liên kết bên trong trên tbl_group g2, các bản ghi sẽ không được cập nhật nếu không tồn tại bất kỳ bản ghi tbl_group nào trong đó chỉ báo khớp với giá trị chỉ báo của bản ghi tbl_indicator được liên kết với nó.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Truy vấn SQL - Chọn * từ chế độ xem hoặc Chọn col1, col2, ... colN từ chế độ xem

  2. 13 phương pháp hay nhất về bảo mật SQL Server

  3. Đọc cấu hình .NET từ cơ sở dữ liệu

  4. Lỗi trong chọn dữ liệu từ bảng trong SQL Server

  5. Ký tự đại diện SQL Server