Entrar
Usuário novo? Cadastre-se
mssql-l · Ms-Sql Server - Brasil
? Você já é um associado? Entre no Yahoo!

Dicas

Você sabia...
Você pode ordenar suas mensagens por data? Basta clicar no link da coluna data. Suas preferências serão lembradas para que você não precise fazer isso novamente sempre que retornar.

Mensagens

  Ajuda
Avançado
Mostrar somente a primeira linha de cada faixa de registros   Lista de mensagens  
Responder | Encaminhar Mensagem #28836 de 29683 |
RE: [mssql-l] Mostrar somente a primeira linha de cada faixa de registros

Hilário,
 
Não tive tempo de fazer um teste, mas isso deve resolver seu problema:
 
SELECT
 TMP.ZVJ_CODUSR,
 TMP.COD,
 TMP.NOME,
 TMP.CODIGO,
 TMP.DATA,
 TMP.VERAPP,
 TMP.VERBD,
 TMP.ULTCNX
FROM
 (
 SELECT
  ROW_NUMBER() OVER(PARTITION BY LOG.CODUSR ORDER BY LOG.CODIGO DESC) AS NUMLOG
  LOG.ZVJ_CODUSR,
  USUARIOS.COD,
  USUARIOS.NOME,
  LOG.CODIGO,
  LOG.DATA,
  LOG.VERAPP,
  LOG.VERBD,
  LOG.ULTCNX
 FROM
  LOG, USUARIOS
 WHERE
  LOG.CODUSR = USUARIOS.COD AND
  LOG.DATA = '20090707'
 ORDER BY  
  LOG.CODUSR,
  LOG.CODIGO DESC
 ) AS TMP
WHERE
 TMP.NUMLOG = 1
 
A função ROW_NUMBER vai numerar os registros reiniciando a contagem (PARTITION_BY) quando houver mudança no valor do campo LOG.CODUSR.
 
Depois você usa essa query como uma derivada pegando apenas os numeros de linha com valor 1
 
[]'s
 
João Bosel Polisél
DBA SQL Server
DO-CIBD - Coordenadoria de Infra para Banco de Dados
BM&F Bovespa S.A. - Bolsa de Valores, Mercadorias & Futuros
* jpolisel@...
( +55 (11) 3233-2259


From: mssql-l@... [mailto:mssql-l@...] On Behalf Of Luis Hilário Tobler Garcia
Sent: sexta-feira, 10 de julho de 2009 09:43
To: mssql-l@...
Subject: Re: [mssql-l] Mostrar somente a primeira linha de cada faixa de registros

SQL Server 2005.
 
----- Original Message -----
Sent: Wednesday, July 08, 2009 4:59 PM
Subject: RE: [mssql-l] Mostrar somente a primeira linha de cada faixa de registros

Hilário,
 
Você está usando sql 2000 ou 2005/2008?
 
No 2000 é muito ruim fazer isso, mas no 2005/2008 há um recurso novo que ajuda bastante.
 
Indica a versão pra gente ajudar!
 
[]'s
 
João Bosel Polisél
DBA SQL Server
DO-CIBD - Coordenadoria de Infra para Banco de Dados
BM&F Bovespa S.A. - Bolsa de Valores, Mercadorias & Futuros
* jpolisel@bmf.com.br
( +55 (11) 3233-2259


From: mssql-l@yahoogrupos.com.br [mailto:mssql-l@yahoogrupos.com.br] On Behalf Of Luis Hilário Tobler Garcia
Sent: quarta-feira, 8 de julho de 2009 16:43
To: mssql-l@yahoogrupos.com.br
Subject: [mssql-l] Mostrar somente a primeira linha de cada faixa de registros

Boa tarde,
sou novo no grupo e estou tendo uma dificuldade para selecionar a lista de últimas conexões de uma tabela de log de transmissão, cada usuário que se conecta gera um registro no log e eu preciso fazer uma lista com todas as utlimas conexões de cada usuário, tentei mas não funcionou com group by e com o distinct
 
 
SELECT 
 LOG.ZVJ_CODUSR, USUARIOS.COD, USUARIOS.NOME, 
 LOG.CODIGO, LOG.DATA, LOG.VERAPP,
 LOG.VERBD, LOG.ULTCNX
FROM 
 LOG, USUARIOS
WHERE
 LOG.CODUSR = USUARIOS.COD AND
 LOG.DATA = '20090707'
ORDER BY   
 LOG.CODUSR, LOG.CODIGO DESC
 
Alguma sugestão?
 
Obrigado, Hilário.
Esta mensagem pode conter informação confidencial e/ou privilegiada. Se você não for o destinatário ou a pessoa autorizada a receber esta mensagem, não deverá utilizar, copiar, alterar, divulgar a informação nela contida ou tomar qualquer ação baseada nessas informações. Se você recebeu esta mensagem por engano, por favor avise imediatamente o remetente, respondendo o e-mail e em seguida apague-o. Agradecemos sua cooperação. This message may contain confidential and/or privileged information. If you are not the addressee or authorized to receive this for the addressee, you must not use, copy, disclose, change, take any action based on this message or any information herein. If you have received this message in error, please advise the sender immediately by reply e-mail and delete this message. Thank you for your cooperation.

Esta mensagem pode conter informação confidencial e/ou privilegiada. Se você não for o destinatário ou a pessoa autorizada a receber esta mensagem, não deverá utilizar, copiar, alterar, divulgar a informação nela contida ou tomar qualquer ação baseada nessas informações. Se você recebeu esta mensagem por engano, por favor avise imediatamente o remetente, respondendo o e-mail e em seguida apague-o. Agradecemos sua cooperação. 

This message may contain confidential and/or privileged information. If you are not the addressee or authorized to receive this for the addressee, you must not use, copy, disclose, change, take any action based on this message or any information herein. If you have received this message in error, please advise the sender immediately by reply e-mail and delete this message. Thank you for your cooperation.


Sex, 10 de Jul de 2009 8:46 pm

jpolisel
Offline Offline
Enviar e-mail Enviar e-mail

Encaminhar Mensagem #28836 de 29683 |
Expandir mensagens Nome/E-mail Classificar por data

Boa tarde, sou novo no grupo e estou tendo uma dificuldade para selecionar a lista de últimas conexões de uma tabela de log de transmissão, cada usuário...
Luis Hilário Toble...
luis.hilario
Offline Enviar e-mail
8 de Jul de 2009
7:51 pm

Hilário, Você está usando sql 2000 ou 2005/2008? No 2000 é muito ruim fazer isso, mas no 2005/2008 há um recurso novo que ajuda bastante. Indica a versão...
João Bosel Polisel
jpolisel
Offline Enviar e-mail
8 de Jul de 2009
8:01 pm

SQL Server 2005. ... From: João Bosel Polisel To: mssql-l@... Sent: Wednesday, July 08, 2009 4:59 PM Subject: RE: [mssql-l] Mostrar somente a...
Luis Hilário Toble...
luis.hilario
Offline Enviar e-mail
10 de Jul de 2009
1:27 pm

Hilário, Não tive tempo de fazer um teste, mas isso deve resolver seu problema: SELECT TMP.ZVJ_CODUSR, TMP.COD, TMP.NOME, TMP.CODIGO, TMP.DATA, TMP.VERAPP, ...
João Bosel Polisel
jpolisel
Offline Enviar e-mail
10 de Jul de 2009
8:48 pm

Ok, vou testar. Muito Obrigado, Hilário. ... From: João Bosel Polisel To: mssql-l@... Sent: Friday, July 10, 2009 5:46 PM Subject: RE:...
Luis Hilário Toble...
luis.hilario
Offline Enviar e-mail
13 de Jul de 2009
12:00 am

Boa noite João, tinha me esquecido de postar no grupo, funcionou muito bem o SQL que vc passou, só tive que tirar o ORDER BY de dentro do sub-select e...
Luis Hilário Toble...
luis.hilario
Offline Enviar e-mail
17 de Jul de 2009
11:22 am

Olá Pessoal! Tudo bem? Um cliente me passou uma bucha pra fazer.. Ele quer fazer uma pesquisa em todos os campos do banco de dados simplesmente digitando...
Adriano Oliveira
adrianoaoli
Offline Enviar e-mail
18 de Jul de 2009
4:00 pm

Adriano, Não vejo outra forma de fazer isso... Mas tem que ser em todos os campos?? O ideal seria reduzir esse conjunto pra ganhar performance... Uma query...
João Bosel Polisel
jpolisel
Offline Enviar e-mail
20 de Jul de 2009
7:37 pm

Adriando, Essa consulta só é possível utilizando FULLTEXT Search. Dê uma olhada: ...
Rodrigo Ribeiro
ribeiro_floripa
Offline Enviar e-mail
24 de Jul de 2009
12:47 pm

Rodrigo, Pelo cenário que ele passou o fulltext só se aplicaria se ele tivesses campos LOB, e seria algo complementar a solução dele. Na verdade o problema...
João Bosel Polisel
jpolisel
Offline Enviar e-mail
24 de Jul de 2009
2:07 pm

Tem certeza João? Pergunto isso pois acabei de implementar uma FULLTEXT search com vários campos varchar de uma tabela (todos os campos em uma consulta...
Rodrigo Ribeiro
ribeiro_floripa
Offline Enviar e-mail
24 de Jul de 2009
6:04 pm

Rodrigo, Não entendi direito, você pode dar mais detalhes dessa implementação? Pelo que eu entendi, o Adriano precisa efetuar a busca em todos os campos de...
João Bosel Polisel
jpolisel
Offline Enviar e-mail
24 de Jul de 2009
6:15 pm

João, Na verdade o FTS aceita vários campos. Não lembro no SQL Server 2000, mas no 2005 ou 2008 você pode informar uma coluna, várias colunas ou * no...
Marcos Kirchner
marcoskirchner
Offline Enviar e-mail
24 de Jul de 2009
7:32 pm

Marcos, Valeu! Essa eu realmente não sabia... []'s João Bosel Polisél DBA SQL Server DO-CIBD - Coordenadoria de Infra para Banco de Dados BM&F Bovespa S.A....
João Bosel Polisel
jpolisel
Offline Enviar e-mail
24 de Jul de 2009
7:44 pm

Então, eu ia responder...mas o Marcos foi mais rápido...rsss No FTS você pode colocar vários campos para pesquisar....e depois fazer *select * from table...
Rodrigo Ribeiro
ribeiro_floripa
Offline Enviar e-mail
24 de Jul de 2009
8:07 pm
Avançado

Copyright © 2009 Yahoo! do Brasil Internet Ltda. Todos os direitos reservados.
Política de Privacidade - Termos do Serviço - Diretrizes - Ajuda