Ir para conteúdo
nandoapfreitas

Selecionar somente a primeira linha

Recommended Posts

No SQL Server com o comando abaixo eu tenho a seguinte tabela.

 

select distinct Articulo, Cliente,Precio
from v_YCTarifaMasReciente
where Articulo='008056--0110' and Cliente='0'

 

image.png.40697af39c6a53451c454d9e7cb6e9b7.png

 

O que eu preciso fazer é que me mostre somente a primeira linha, limitar a coluna Precio somente para primeira linha.

 

Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

obs: até a versão 2014, nao existia "limit" no sql server.

pesquise sobre as funções min() e top().

Compartilhar este post


Link para o post
Compartilhar em outros sites
36 minutos atrás, A.Jr disse:

nao é limit, é TOP

 

 

select top 1 * from table

A questão é que a coluna Precio que faz duplicar as linhas, então eu tenho que aplicar o comando Top apenas na coluna Precio, só que quando eu seleciono 02 códigos ele me passa o mesmo Precio de um só, veja abaixo.

 

select distinct Articulo, Cliente, (select top 1 (Precio) from v_YCTarifaMasReciente)
from v_YCTarifaMasReciente
where  Cliente='0' 
 

image.png.46dc052b41c0fc7cef53ddad8abb001e.png 

 

Eu quero que ele pegue o preço da primeira linha de acordo com o Articulo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

  • Conteúdo Similar

    • Por Antonio Barbosa
      Saudações colegas,
      Sou novo aqui na comunidad e estou com um grave problema, mas que penso ser muito simples.
       
      Normalmente sempre trabalhei com MySQL, nos meus projectos em php sempre trabalhei e tudo funciona perfeitamente, porém, estou numa empresa em que o SGBD é SQL SERVER  e tenho enfrentado alguns problemas, consigo fazer quase tudo que fazia quando o SGBD era MySQL, mas conforme o projecto na empresa vai crescendo, cresce também  a dificuldade de implementar as minha ideias usando o SQL SERVER, cá vai o problema:
       
      Tenho uma tela de Login em que o mesmo faz a requisição no Banco de Dados SQL SERVER, ele funciona 75%, caso eu coloque o Username Errado, ele trás a mensagem Dados Errados, caso eu erre a Senha, ele apresenta a mensagem de Senha Incorrecta, até aqui tudo bem, mas se eu colocar todos os dados correctos, ele não me apresenta nenhuma mensagem e não me renderiza para a página de destino.
       
      Estou a trabalhar com MVC, abaixo segue-se o código.
       
      Controller
       
      function entrar(){
              $data = array();
              $data['username'] = $_POST['nome_utilizador'];
              $data['password'] = sha1($_POST['senha']);
       
              if(!is_null($this->model->verificausername($data))){
                  echo 2;
              }
              else if(!is_null($a = $this->model->verificasenha($data))){
                  
                  echo 3;
              }    
              else if (!is_null($this->model->entrar($data))):
              echo 1;

          endif;
      }
       
      Model
       
      public function entrar($data){
       $sth =  $this->bd->prepare("SELECT *  FROM tKxUsUtilizador WHERE UtCodigo = :username AND UtSenha = :password");
       $sth->execute(array(
          ':username' => $data['username'],
          ':password' => $data['password']
      ));
       $data = $sth->fetch();
       $count = $sth->rowCount();
       if($count > 0):
                  //login
          Session::init();
          Session::set('UtCodigo', $data['UtCodigo']);
            Session::set('UtSenha', sha1($data['UtSenha']));
          Session::set('loggedIn', true);
          return 1;
      else:
          return null;
      endif;
      }
       
      Preciso muito dessa ajuda,
       
      Obrigado.
    • Por Beatriz Burti
      Olá pessoal
       
      Preciso da ajuda de vocês, atualmente tenho uma consulta que está retornando as datas, nomes e quantidade de erros, gostaria de fazer um pivot para que a data fique como coluna e somar a quantidade de erros. 
       
      Poderiam me ajudar?
       
       
       
      SELECT
        CAST(C.DataPalitagem AS DATE) AS Data,
        C.Id,
        R.Id,
        R.Nome,
        COUNT(DISTINCT CASE WHEN SPC.IdStatus = 4 THEN REL.IdCaptura ELSE NULL END) AS Erros
       FROM
        Caso C (NOLOCK)
        INNER JOIN StatusProcessosCaso SPC (NOLOCK) ON C.Id = SPC.IdCaso
        INNER JOIN Relacionamento REL (NOLOCK) ON SPC.IdCaso = REL.IdCaso AND SPC.IdRobo = REL.IdRobo
        INNER JOIN Robo R (NOLOCK) ON SPC.IdRobo = R.ID
        INNER JOIN StatusProcesso S ON SPC.IdStatus = S.Id
        LEFT  JOIN TipoRobo TR ON R.IdTipoRobo = TR.Id
        LEFT  JOIN CasoCaptura CC (NOLOCK) ON C.Id = CC.IdCaso AND REL.IdCaptura = CC.IdCaptura AND CC.Excluido = 0
       WHERE
        C.Id > 370
        AND
        C.IdStatusCaso >= 2
        AND
        C.DataPalitagem >= CAST(GETDATE()-15 AS DATE)
        AND
        SPC.IdRobo NOT IN (4)
       GROUP BY
        CAST(C.Data AS DATE),
        C.Id,
        R.Id,
        R.Nome
        ORDER BY 
        C.Id,
        R.Id,
        R.Nome
       
    • Por will_jdc
      Boa Tarde a todos, 
      Tenho um programa Windows desktop que utiliza o SQL SERVER como fonte de dados, os usuários iniciam o programa que se conecta ao SQL Server. 
      Após o programa fazer o Login no sql server, o usuário insere a senha do sistema para acessar as informações na base de dados, porém quando ele coloca a senha do sistema, o programa fica processando e acaba que não respondendo, como faço para verificar no SQL Server o que esta impedindo o acesso as informações ?
    • Por leardini
      Boa noite.
       
      Tenho uma consulta feita em PHP que mostra em uma table o resultado, e preciso que essa consulta o Valor do Campo "ID"  passe para uma Variável para que eu possa usar em outra consulta.
       
      Não consegui muita informação para o tipo de conexão que estou usando SQL Server e não My SQL, e é uns de meus primeiros códigos.
       
      Desde já agradeço a atenção!
       
      $rank = odbc_exec($connection, $verifica); if($pg == 1 or $pg == 0){ $i = 1; }elseif($pg > 1){ $i = $ini+1; } while($dados = odbc_fetch_array($rank)) { $id=$i+1; // AQUI OCORRE O PROBLEMA $idmomb = .$dados['id']; echo ($i % 2) ? "<tr>" : "<tr>"; echo '<td><center>'.$dados['ID'].'</center></td>'; echo '<td><center>'.$dados['MonsterName'].'</center></td>'; echo '<td><center>'.$dados['PublicDrop'].'</center></td>'; echo '<td><center>'.$dados['Quantity'].'</center></td>'; echo '</tr>'; $i++; } echo '</table>';  
    • Por raphaelspark
      Fala galera, eu estou com um problema aqui que é o seguinte:
      Tenho um banco de dados em produção que ele não é acessível externamente. Eu preciso ter uma copia dele, sincronizada para expor ele e meu sistema consumir. Estava estudando sobre o Mirror mas fiquei com algumas duvidas se ele realmente resolveria o meu problema. Em um dos tutoriais que vi me pareceu que o banco mirror não é acessível para consultas. Alguém consegue me confirmar isso ou tem alguma outra opção de arquitetura para eu conseguir uma copia sincronizada do banco em outro servidor?
      Usamos o SQL Server 2012 aqui.
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.