domingo, 14 de junho de 2015

Como criar uma Tabela temporária SQL

Muitas vez precisamos criar um tabela temporária para manipularmos os dados sem que alterar o Banco de produção.vou mostrar como é simples criar uma tabela temporária alimentada por u tabela do banco de produção.

Select * into #Tabela_temporaria 

From SA1010

Observe que é muito simples apenas usei o comando Into e o nome da tabela iniciando com '#' apos o predicado do meu select.

#Tabela_temporaria  nome da tabela que estou criando
SA1010 tabela já existente no meu banco neste caso é a tabela de cadastro de cliente.

segunda-feira, 8 de junho de 2015

Função Soma com Group Bay SQL

Vou mostrar como realizar uma consulta que retorna o faturamento de cada cliente em determinado período, para isto vou usar a função Sum(Soma) e a Clausura Group BAY.

este exemplo esta usando a base de dados Microsiga Protheus.

SELECT
B.A1_NOME,B.A1_TEL,B.A1_EMAIL,B.A1_EST,SUM(F2_VALBRUT)

From SF2010 as A -- Alias da Tabela de nota Fiscal
Join SA1010 as B -- Alias Tabela Cadastro de Cliente

ON

A.F2_CLIENTE = B.A1_COD and A.F2_LOJA = B.A1_LOJA and B.D_E_L_E_T_ <> '*'
where A1_MSBLQL ='2' and a.D_E_L_E_T_ <> '*'

and A.F2_EMISSAO ='20140101' and A.F2_EMISSAO ='20150602'

group by B.A1_NOME, B.A1_TEL, B.A1_EMAIL, B.A1_EST

a funçao sum, soma o valor de cada nota e todas as vezes que usa a função Sum também sera usado o Group By.

terça-feira, 19 de maio de 2015

Clausula Where

Vamos falar da Cláusula Where é muito comum o seu uso quando queremos montar um filtro pois ela ela usa os operadores lógicos.
vou montar um select usando o where bem simples, só para você entender o como é um filtro.
este relatório retorna os documento de saída filtrando pelo numero do documente e o cliente

select * From SF2010

Where   F2_DOC ='001885'

and F2_CLIENTE ='000002'

observe que o filtro usa um operador logico. E logico (AND)
Flaviano.

sexta-feira, 15 de maio de 2015

Consulta em 3 tabelas

Vou demostrar como realizar um consulta em Três Tabelas.
Tabelas
SA1: Cadastro de cliente
SF2: Nota fiscal de Saída
SA4: cadastro de Transportadora

SELECT
    SF2.F2_DOC,
    SF2.F2_SERIE,
    SF2.F2_CLIENTE,
    SF2.F2_LOJA,
    SA1.A1_NOME,
    SA1.A1_END,
    SA1.A1_BAIRRO,
    SA1.A1_MUN,
    SA1.A1_EST,
    SA1.A1_CEP,
    SF2.F2_VOLUME1,
    SA4.A4_NOME
   
   
    FROM
SF2010 as  SF2 -- Tabela
  INNER JOIN SA1010 as SA1
  ON
  SF2.F2_CLIENTE = SA1.A1_COD AND F2_DOC  = '006524 '
  inner join SA4010 as SA4
  ON SA4.A4_COD = SF2.F2_TRANSP

Até a próxima.

terça-feira, 20 de novembro de 2012

CRIAÇÃO DE TABELAS


Neste poste estarei ensinado como criar tabelas via comando SQL.
CREATE TABLE GRAVADORA (
       Codigo_Gravadora     int NOT NULL,
       Nome_Gravadora       VARCHAR(60) NULL,
       Endereco             VARCHAR(60) NULL,
       Telefone             VARCHAR(20) NULL,
       Contato              VARCHAR(20) NULL,
       URL                  VARCHAR(80) NULL
);


ALTER TABLE GRAVADORA
       ADD   CONSTRAINT XPKGRAVADORA PRIMARY KEY (Codigo_Gravadora)  ;


CREATE TABLE CD (
       Codigo_CD            int NOT NULL,
       Codigo_Gravadora     int NULL,
       Nome_CD              VARCHAR(60) NULL,
       Preco_Venda          numeric(14,2) NULL,
       Data_Lancamento      datetime NULL,
       CD_Indicado          int NULL
);

CREATE INDEX XIF6CD ON CD
(
       Codigo_Gravadora
);


ALTER TABLE CD
       ADD   CONSTRAINT XPKCD PRIMARY KEY (Codigo_CD)  ;


CREATE TABLE MUSICA (
       Codigo_Musica        int NOT NULL,
       Nome_Musica          VARCHAR(60) NULL,
       Duracao              numeric(6,2) NULL
);


ALTER TABLE MUSICA
       ADD   CONSTRAINT XPKMUSICA PRIMARY KEY (Codigo_Musica)  ;


CREATE TABLE AUTOR (
       Codigo_Autor         int NOT NULL,
       Nome_Autor           VARCHAR(60) NULL
);


ALTER TABLE AUTOR
       ADD   CONSTRAINT XPKAUTOR PRIMARY KEY (Codigo_Autor)  ;


CREATE TABLE MUSICA_AUTOR (
       Codigo_Musica        int NOT NULL,
       Codigo_Autor         int NOT NULL
);

CREATE INDEX XIF11MUSICA_AUTOR ON MUSICA_AUTOR
(
       Codigo_Musica
);

CREATE INDEX XIF12MUSICA_AUTOR ON MUSICA_AUTOR
(
       Codigo_Autor
);


ALTER TABLE MUSICA_AUTOR
       ADD   CONSTRAINT XPKMUSICA_AUTOR PRIMARY KEY (Codigo_Musica, 
              Codigo_Autor)  ;


CREATE TABLE FAIXA (
       Codigo_Musica        int NOT NULL,
       Codigo_CD           int NOT NULL,
       Numero_Faixa         numeric(2) NULL
);

CREATE INDEX XIF13FAIXA ON FAIXA
(
       Codigo_Musica
);

CREATE INDEX XIF14FAIXA ON FAIXA
(
       Codigo_CD
);


ALTER TABLE FAIXA
       ADD   CONSTRAINT XPKFAIXA PRIMARY KEY (Codigo_Musica, 
              Codigo_CD)  ;


CREATE TABLE CD_CATEGORIA(
       Codigo_Categoria   Int    NOT NULL,
       Menor_Preco        numeric(14,2) NOT NULL,
       Maior_Preco        numeric(14,2) NOT NULL
);


ALTER TABLE CD
       ADD   CONSTRAINT GRAVADORA_CD
              FOREIGN KEY (Codigo_Gravadora)
                             REFERENCES GRAVADORA  ;

ALTER TABLE CD
       ADD   CONSTRAINT CD_CD
              FOREIGN KEY (CD_Indicado)
                             REFERENCES CD  ;


ALTER TABLE MUSICA_AUTOR
       ADD   CONSTRAINT AUTOR_MUSICA_AUTOR
              FOREIGN KEY (Codigo_Autor)
                             REFERENCES AUTOR  ;

ALTER TABLE MUSICA_AUTOR
       ADD   CONSTRAINT MUSICA_MUSICA_AUTOR
              FOREIGN KEY (Codigo_Musica)
                             REFERENCES MUSICA  ;


ALTER TABLE FAIXA
    ADD   CONSTRAINT CD_FAIXA
              FOREIGN KEY (Codigo_CD)
                             REFERENCES CD  ;


ALTER TABLE FAIXA
       ADD  CONSTRAINT MUSICA_FAIXA
              FOREIGN KEY (Codigo_Musica)
                             REFERENCES MUSICA 
 ;

sábado, 20 de fevereiro de 2010

Principais comandos SQL.

Comando Select:seleciona os registros da tabela.
Exemplo
select [nome do registro]
Comando From: Lista as tabela que serão consultadas

Exemplo.
Select NomeCliente
From Cliente.
Comando Where: este comando especifica as linhas da tabela que serão retomados ou não ele funciona como um filtro, sendo possível fazer uma junção entre as tabelas envolvidas.
Exemplo
Select NomeCliente
From Cliente
WHERE NomeCliente = ‘Flaviano’
Comando GROUP BY este comando permite que o retorno da consulta seja feito por um grupo especificado pelo programador.
Comando ORDER BY define a ordem do retorno da consulta.
Estes são os primeiros comandos para quem esta iniciando, é claro existe vários comando SQL
Obrigado.

terça-feira, 13 de outubro de 2009

Apostila Normalização de tabelas.

Uma das grande dificuldade que encontrei guando estava projetando um banco de dados foi justamente como normalizar a Tebas, pois minhas tabelas estavam uma bagunça.
O problema maior e justamente quando o banco esta pronto e é hora de fazer a inserção dos dados,então o trabalho e dobrado .estou disponibilizando um link de uma apostila que usei pra normaliza o banco que projetei ela e completa e aborta outros assunto SQL muito usual.
Espero contribuir com quem está na duvida assim com eu estive.
http://www.apostilando.com/download.php?cod=3152&categoria=Banco%20de%20Dados