• A NatSam não fornece suporte na utilização deste módulo e não é responsável pelo treinamento na linguagem SQL.
  • As partes do comando entre colchetes [ ] indicam que os mesmos são opcionais (os colchetes não devem ser digitados junto com os comandos).
  • Os comandos SELECT pode ser distribuídos entre várias linhas.
  • Se o comando SELECT possuir mais de um bloco, então cada bloco deverá ser finalizado com um ;


O comando SELECT é utilizado para extrair dados de uma ou mais tabelas do banco de dados do Hipercusto. Sua sintaxe básica é:


SELECT   [ Limite ]  Campos

FROM   Tabela(s) 

[ Condição de União ]

[ WHERE   Condição de pesquisa ]

[ GROUP  BY   Agrupamento ]

[ HAVING   Condição de Seleção ]

[ ORDER  BY   Ordenação ]


Onde:

  • Limite: Indica a limitação dos registros que devem ser retornados. Se esse parâmetro não for especificado então serão retornados todos os registros de acordo com o restante do comando. As opções para esta instrução são:
    • DISTINCT: retorna apenas os registros que não forem duplicados
    • ALL : retorna todos os registros
    • TOP  N : retorna apenas os primeiros N registros.
    • TOP  N , X: retorna apenas os primeiros N registros após o registro X.
    • TOP  N  PERCENT: retorna apenas os primeiros N porcento dos registros obtidos.
  • Campos: indica o nome dos campos que deverão ser extraídos do banco de dados. Aqui você poderá usar um * para informar que deseja que todos os campos sejam retornados.
  • Tabela(s): indica o nome de uma ou mais tabelas onde os dados devem ser pesquisados. Se mais de uma tabela for informada então deverá ser informado a cláusula de união das mesmas na instrução WHERE.
  • Condição de União: também é possível informar mais de uma tabela a ser pesquisada utilizando as seguintes cláusulas de união:
    • JOIN  tabela  ON  condição  : une a tabela especificada aqui com a tabela principal obedecendo a condição especificada. O registro indicado pela condição deverá existir nas duas tabelas para que os mesmos sejam retornados.
    • LEFT  JOIN  tabela  ON  condição : similar a opção acima, porém o registro principal será retornado mesmo que ele não exista na segunda tabela.
    • RIGH  JOIN  tabela  ON  condição : oposta a condição acima.
  • Condição de pesquisa: indica a condição que deverá ser atendida para que o registro seja selecionado. Aqui você poderá utilizar:
    • >  : maior que
    • <  : menor que
    • : igual a
    • >= : maior ou igual a
    • <= : menor ou igual a
    • BETWEEN : entre dois valores
    • AND : cláusula e
    • OR : cláusula ou
    • IN : cláusula em
    • EXISTS : cláusula existe em
    • LIKE : cláusula contém (aqui você poderá usar os caracteres % ou _
  • Agrupamento: indica a cláusula de agrupamento dos registros e é necessária apenas quando você efetuar operações de totalização, média ou contagem registros através das funções SUM, AVG, MIN, MAX, COUNT, MED, STD e LIST.
  • Condição de Seleção: indica a condição que deverá ser atendida para que o registro obtido seja retornado para o usuário.
  • Ordenação: indica a ordem em que os registros deverão ser ordenados.


Veja alguns exemplos de comandos SQL:


Exemplo 1: retorna todos os campos do arquivo de matéria-prima:

SELECT * FROM HIP0060A


Exemplo 2: retorna apenas os campos código, descrição e unidade de medida da matéria-prima com o código 001:

SELECT mpCODIGO, mpDESCRICAO, mpUNIDADE FROM HIP0060A WHERE CODIGO = '001'


Exemplo 3: Conta quantos registros existem no arquivo de matérias-primas:

SELECT COUNT(*) FROM HIP0060A 


Exemplo 4: Totaliza todas as vendas realizadas no mês de janeiro/2014:

SELECT SUM(hvVLR_FINAL) VENDAS

FROM HIP0051R

WHERE hvSTATUS = 'V' AND 

      hvDATA BETWEEN CAST('2014-01-01 00:00:00' AS DATETIME) 

                     AND CAST('2014-01-31 23:59:59' AS DATETIME)


Exemplo 5: Totaliza todas as vendas realizadas para cada cliente no mês de janeiro/2014 retornado apenas os clientes cujo valor total seja superior a R$ 10.000,00 sendo que após totalizado os registros serão retornados em ordem alfabética pela razão social do cliente:

SELECT VD.clCODIGO, CL.clRAZAO_SOCIAL, SUM(VD.hvVLR_FINAL) VENDAS

FROM HIP0051R VD

LEFT JOIN HIP0095A CL ON CL.clCODIGO = VD.clCODIGO

WHERE VD.hvSTATUS = 'V' AND 

      VD.hvDATA BETWEEN CAST('2014-01-01 00:00:00' AS DATETIME) 

                        AND CAST('2014-01-31 23:59:59' AS DATETIME)

GROUP BY VD.clCODIGO, CL.clRAZAO_SOCIAL  

HAVING SUM(VD.hvVLR_FINAL) > 10000

ORDER BY CL.clRAZAO_SOCIAL          


  • Use esse módulo com cautela pois instruções SQL incorretas ou mal estruturadas poderão sobrecarregar o banco de dados ou até danificá-lo.