Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

sql актуализация (помогнете ми)

Първо разберете кои записи трябва да бъдат актуализирани:

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

Сега променете заявката, за да актуализирате тези записи с правилния grp_id. Забележете, че добавих допълнително съединение към таблицата tbl_group с псевдоним "g2". Това ще бъде правилната група.

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

Обърнете внимание, че поради вътрешното присъединяване към tbl_group g2, записите няма да бъдат актуализирани, ако не съществува запис tbl_group, където indicat съвпада със стойността на indicat на свързания с него запис tbl_indicator.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да задам свойството SSRS ConsumeContainerWhitespace във Visual Studio 2008?

  2. Как да създадете истинска връзка един към един в SQL Server

  3. Свързване към SQL Server Express - Какво е името на моя сървър?

  4. Обхват на временните таблици в SQL Server

  5. Пребройте броя на потребителите в диапазона на определена възраст въз основа на датата на раждане