ActiveDelphi - Índice do Fórum ActiveDelphi
.: O site do programador Delphi! :.
 
 FAQFAQ   PesquisarPesquisar   MembrosMembros   GruposGrupos   RegistrarRegistrar 
 PerfilPerfil   Entrar e ver Mensagens ParticularesEntrar e ver Mensagens Particulares   EntrarEntrar 

Update buscando Row_Number() Delphi 7 e SQL Server 2008

 
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Banco de Dados
Exibir mensagem anterior :: Exibir próxima mensagem  
Autor Mensagem
jescudeiro
Aprendiz
Aprendiz


Registrado: Segunda-Feira, 2 de Abril de 2012
Mensagens: 261
Localização: ribeirao preto

MensagemEnviada: Ter Dez 30, 2014 4:27 pm    Assunto: Update buscando Row_Number() Delphi 7 e SQL Server 2008 Responder com Citação

Boa tarde,
estou fazendo um esquema para controle de entregas. entao na tabela clientes tenho

Clientes
Codigo
Nome
SeqEntrega

o usuario vai inserir e alterar essa SeqEntrega da maneira que melhor achar, gostaria de reorganizar essa SeqEntrega atraves de um update e ROW_NUMBER(), mas da erro.

segue o comando..
UPDATE clientes SET SeqEntrega = (SELECT ROW_NUMBER() OVER (PARTITION BY SeqEntrega
ORDER by SeqEntrega) AS b FROM clientes)



segue erro:
A subconsulta retornou mais de 1 valor. Isso não é permitido quando a subconsulta segue um =, !=, <, <= , >, >= ou quando ela é usada como uma expressão.
A instrução foi finalizada.

muito obrigado... Feliz Ano Novo
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail MSN Messenger
imex
Moderador
Moderador


Registrado: Sexta-Feira, 7 de Janeiro de 2011
Mensagens: 11666

MensagemEnviada: Ter Dez 30, 2014 6:11 pm    Assunto: Responder com Citação

Boa noite,

Experimente dessa forma:

Código:
with CTE_RN as
(
    select
        *,
        ROW_NUMBER() OVER(PARTITION BY Codigo ORDER by SeqEntrega) AS RN
    FROM clientes
)

UPDATE CTE_RN
SET SeqEntrega = RN


Espero que ajude.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
Mostrar os tópicos anteriores:   
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Banco de Dados Todos os horários são GMT - 3 Horas
Página 1 de 1

 
Ir para:  
Enviar Mensagens Novas: Proibido.
Responder Tópicos Proibido
Editar Mensagens: Proibido.
Excluir Mensagens: Proibido.
Votar em Enquetes: Proibido.


Powered by phpBB © 2001, 2005 phpBB Group
Traduzido por: Suporte phpBB