none
Dúvida com select RRS feed

  • Pergunta

  • Pessoal boa tarde tudo bem?

    Tenho uma cliente que ela quer um tipo de select que eu nunca fiz mas gostaria de saber se os universitários tem alguma dica...

    Por exemplo no meu sistema existe uma sequência de CT-e 1,2,3,4,5,6,7,8,9 e assim por diante...

    as vezes o cliente dela pede por exemplo 10-20, 25-37, 39,42,45.

    ela me disse que para imprimir (windows) ela faz esse comando: 10299-10308;10285-10297;10325;10314-10322

    No sql existe algo que eu consiga fazer esse comando?

    Grato,

    Wagner


    Wagner_fix

    quarta-feira, 24 de julho de 2019 18:13

Todas as Respostas

  • Wagner,

    Obrigado pela definição universitários (kkkk).

    Então, vamos por partes, com base no que você descreveu, gostaria de apresentar algumas perguntas:

    1 - Você destacou que os clientes possuem uma sequência, se entendi é um número. É isso?

    2 - A dúvida se relaciona a pesquisar esta sequência de número, ou pesquisar por intervalos?

    No que se refere a impressão, isso não é papel do SQL Server e sim do sistema ou aplicação que consulta e obtem os dados, no caso a impressão pode sim ser feito por intervalos, isso vai depender do componente de impressão que esta sendo utilizado pela aplicação.

    O SQL Server possui diversas funções, comandos e recursos para pesquisar, filtras e apresentar os dados, tudo depende do que e de que forma você necessita, mas para tal indicação ou sugestão precisamos entender melhor a sua necessidade.


    Pedro Antonio Galvão Junior [MVP | MCC | MSTC | MIE | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados Relacional e Data Warehouse | Professor Universitário | @JuniorGalvaoMVP | http://pedrogalvaojunior.wordpress.com]

    quarta-feira, 24 de julho de 2019 18:30
  • Junior primeiramente obrigado pela resposta...

    Vamos ver se eu consigo explicar melhor... 

    1-) Quando disse da sequência numérica: Sim eu me referi que é números.

    2-) Eu queria pesquisar por intervalos.

    3-) Sobre a impressão, eu só dei um exemplo como ela seleciona o que quer imprimir no windows a forma que ela joga: 10299-10308;10285-10297;10325;10314-10322

    O que eu realmente preciso é fazer um select desses intervalos que ela colocar.

    Quando são números sequencial por exemplo de 1 a 10 eu usei: AND COD BETWEEN 1 AND 10

    Quando são números quebrados por exemplo: 2,4,7,9 eu usei: COD IN (2,4,7,9)

    Mas o duro que ela usa várias sequencias e vários números quebrados.

    Será que consegui explicar?

    Grato,

    Wagner


    Wagner_fix

    quarta-feira, 24 de julho de 2019 18:37
  • Wagner,

    Sim, obrigado pelas respostas, explicou sim, consegui entender.

    Em relação ao que você esta fazendo as maneiras estão corretas, são as possibilidades mais comuns e triviais.

    Talvez você possa mediante a alguma necessidade fazer uma implementação no operador In utilizando uma subquery, algo similar isso:

    -- Utilizando Subquery no operador In --
    Select Codigo, Descricao, Valor From Produtos
    Where Codigo In (Select Codigo From ProdutosEmEstoque
                     Where Codigo BetWeen 1 And 5
                     And UnidadeEstoque=10)
    Go

    Este é somente um exemplo, não estou abordando nenhuma regra de negócio ou levando em consideração o seu ambiente.

    Talvez com base neste exemplo que eu te passei, tentar pegar estas diversas sequências e números quebrados, armazenar em uma tabela temporária ou até mesmo em uma variável e passar como uma parâmentro no seu Select.

    Podemos analisar a possibilidade de elaborar uma User Defined Function ou Stored Procedure.

    Pergunto, os dados sempre serão consultados e pesquisados em uma única tabela?


    Pedro Antonio Galvão Junior [MVP | MCC | MSTC | MIE | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados Relacional e Data Warehouse | Professor Universitário | @JuniorGalvaoMVP | http://pedrogalvaojunior.wordpress.com]

    quarta-feira, 24 de julho de 2019 18:55
  • Deleted
    quarta-feira, 24 de julho de 2019 19:05
  • Deleted
    quarta-feira, 24 de julho de 2019 21:12
  • Deleted
    segunda-feira, 5 de agosto de 2019 09:33