Jump to content
Fórum Script Brasil

Search the Community

Showing results for tags 'merge union dois skemas'.

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • Programação & Desenvolvimento
    • ASP
    • PHP
    • .NET
    • Java
    • C, C++
    • Delphi, Kylix
    • Lógica de Programação
    • Mobile
    • Visual Basic
    • Outras Linguagens de Programação
  • WEB
    • HTML, XHTML, CSS
    • Ajax, JavaScript, XML, DOM
    • Editores
  • Arte & Design
    • Corel Draw
    • Fireworks
    • Flash & ActionScript
    • Photoshop
    • Outros Programas de Arte e Design
  • Sistemas Operacionais
    • Microsoft Windows
    • GNU/Linux
    • Outros Sistemas Operacionais
  • Softwares, Hardwares e Redes
    • Microsoft Office
    • Softwares Livres
    • Outros Softwares
    • Hardware
    • Redes
  • Banco de Dados
    • Access
    • MySQL
    • PostgreSQL
    • SQL Server
    • Demais Bancos
  • Segurança e Malwares
    • Segurança
    • Remoção De Malwares
  • Empregos
    • Vagas Efetivas
    • Vagas para Estágios
    • Oportunidades para Freelances
  • Negócios & Oportunidades
    • Classificados & Serviços
    • Eventos
  • Geral
    • Avaliações de Trabalhos
    • Links
    • Outros Assuntos
    • Entretenimento
  • Script Brasil
    • Novidades e Anúncios Script Brasil
    • Mercado Livre / Mercado Sócios
    • Sugestões e Críticas
    • Apresentações

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


AIM


MSN


Website URL


ICQ


Yahoo


Jabber


Skype


Location


Interests

Found 2 results

  1. Olá! Estou trabalhando com SQL Server. Preciso unir duas tabelas com base na coluna “Ctrl”. A primeira tabela, “Cad_Clients”, contém informações de clientes, enquanto a segunda, “Cad_Colors”, possui a descrição das informações. A condição para uni-las é que o valor de “Ctrl” seja o mesmo em ambas as tabelas. No entanto, a distribuição precisa ser exata, ou seja, não podem ocorrer duplicatas. Imagine que eu crie um laço ‘for’ na tabela ´Cad_Colors´. Em cada iteração, adiciono um registro da tabela à ‘Cad_Clients’, desde que o valor ‘Ctrl’ corresponda. Após, excluo esse registro de ´Cad_Colors´. Se a tabela em loop ficar vazia ou o laço chegar ao fim, significa que distribuí o máximo possível dos registros. É apenas isso, mas não quero usar um laço no banco; estou confiante de que, discutindo aqui, podemos obter um resultado muito mais conciso. Representação visual do problema Cad_Clients | idPerson | Person | Ctrl | |----------|----------|-------| | 1 | John | 100 | | 2 | Sarah | 101 | | 3 | Michael | 102 | | 4 | Emily | 103 | | 5 | William | 104 | | 6 | Olivia | 105 | | 7 | James | 100 | | 8 | Emma | 101 | | 9 | Benjamin | 102 | | 10 | Sophia | 103 | | 11 | Samuel | 104 | | 12 | Ava | 105 | | 13 | Joseph | 100 | Cad_Colors | Ctrl | Color | idColor | |------|----------|---------| | 100 | Red | 1 | | 104 | Blue | 2 | | 105 | Green | 3 | | 103 | Yellow | 4 | | 104 | Purple | 5 | | 105 | Red | 6 | União das duas tabelas: | idPerson | Person | Ctrl | Color | |----------|---------|------|--------| | 1 | John | 100 | Red | | 4 | Emily | 103 | Yellow | | 5 | William | 104 | Blue | | 6 | Olivia | 105 | Green | | 11 | Samuel | 104 | Purple | | 12 | Ava | 105 | Red | Algumas tentativas frustradas: INSERT INTO @Tmp SELECT ccl.idPerson, ccl.Person, ccl.Ctrl, (SELECT TOP 1 cco.idColor FROM Cad_Colors cco WHERE cco.Ctrl = ccl.Ctrl AND cco.idColor NOT IN(SELECT idColor FROM @Tmp)) FROM Cad_Clients ccl INSERT INTO @Tmp SELECT ccl.idPerson, ccl.Person, ccl.Ctrl, cco.idColor, cco.Color FROM Cad_Clients ccl JOIN (SELECT TOP 1 cco.* FROM Cad_Colors cco WHERE cco.idColor NOT IN(SELECT idColor FROM @Tmp)) cco ON cco.Ctrl = ccl.Ctrl INSERT INTO @Tmp SELECT ccl.idPerson, ccl.Person, ccl.Ctrl, cco.idColor, cco.Color FROM Cad_Clients ccl JOIN Cad_Colors cco ON cco.Ctrl = ccl.Ctrl WHERE NOT EXISTS (SELECT 1 FROM @Tmp WHERE Ctrl = cco.Ctrl) MERGE INTO Cad_Clients AS target USING Cad_Colors AS source ON target.Ctrl = source.Ctrl WHEN MATCHED THEN UPDATE SET target.idPerson = target.idPerson OUTPUT inserted.idPerson, inserted.Person, inserted.Ctrl, inserted.idColor, inserted.Color INTO @tmp; Ajuda para criar os cenários: CREATE TABLE Cad_Clients( [idPerson] [int] IDENTITY(1,1) NOT NULL, [Person] [varchar](60) NULL, [Ctrl] [int] NULL ); CREATE TABLE Cad_Colors( [Ctrl] [int] NULL, [Color] [varchar](60) NULL, [idColor] [int] IDENTITY(1,1) NOT NULL ); INSERT INTO Cad_Clients (Person, Ctrl) VALUES ('John',100), ('Sarah',101), ('Michael',102), ('Emily',103), ('William',104), ('Olivia',105), ('James',100), ('Emma',101), ('Benjamin',102), ('Sophia',103), ('Samuel',104), ('Ava',105), ('Joseph',100); INSERT INTO Cad_Colors (Ctrl, Color) VALUES (100, 'Red'), (104, 'Blue'), (105, 'Green'), (103, 'Yellow'), (104, 'Purple'), (105, 'Red'); DECLARE @Tmp TABLE( idPerson INT, Person VARCHAR(60), Ctrl INT, idColor INT /*Color VARCHAR(60)*/ );
  2. Prezados, foi feita a migração de um banco do PostgreSQL V9.3 para um novo servidor, todavia por cerca de 2 horas o datasource da aplicação estava apontando para o banco antigo. Como faço para integrar esses dois banco, o antigo e o novo? os dois possuem as mesmas tabelas, skemas, etc. Só alguns dados por cerca de 2 horas ficaram alterados entre eles. É possível tal procedimento? Se sim, como devo proceder. Grato!
×
×
  • Create New...