iMasters Fóruns: Refinando o SQL - iMasters Fóruns

Ir para

Página 1 de 1
  • Novo tópico
  • Responder

Refinando o SQL

#1 Membro offline   Boris Ícone

  • Ícone
  • Grupo: Membros
  • Posts: 318
  • Cadastrado: 04-abril 04
  • Sexo:Masculino

Postou 23 outubro 2009 - 10:36

Galera estou montando um Select porem preciso refinar o mesmo

Meu banco tem as seguintes colunas.

Loja
Data
Valor
FormaPagamento
Tipo_pgto
Data_R

Estou usando o seguinte select

SELECT     dbo.CADASTRO_CLI_FOR.NOME_CLIFOR AS loja, dbo.LOJA_VENDA_PGTO.DATA, dbo.LOJA_VENDA_PARCELAS.VALOR, 
                      (CASE WHEN Desc_Tipo_Pgto LIKE '%cartao%' THEN 'CARTAO' WHEN Desc_Tipo_Pgto LIKE '%cheque%' THEN 'CHEQUE' ELSE desc_tipo_pgto END) 
                      AS formapagamento, dbo.LOJA_VENDA_PARCELAS.TIPO_PGTO, dbo.LOJA_VENDA_PGTO.DATA AS DATA_R
FROM         dbo.TB_FECHA_CAIXA INNER JOIN
                      dbo.LOJA_VENDA_PGTO ON dbo.TB_FECHA_CAIXA.codigo_filial = dbo.LOJA_VENDA_PGTO.CODIGO_FILIAL AND 
                      dbo.TB_FECHA_CAIXA.data_registro = dbo.LOJA_VENDA_PGTO.DATA INNER JOIN
                      dbo.LOJA_VENDA_PARCELAS ON dbo.LOJA_VENDA_PGTO.CODIGO_FILIAL = dbo.LOJA_VENDA_PARCELAS.CODIGO_FILIAL AND 
                      dbo.LOJA_VENDA_PGTO.TERMINAL = dbo.LOJA_VENDA_PARCELAS.TERMINAL AND 
                      dbo.LOJA_VENDA_PGTO.LANCAMENTO_CAIXA = dbo.LOJA_VENDA_PARCELAS.LANCAMENTO_CAIXA AND 
                      dbo.TB_FECHA_CAIXA.codigo_filial = dbo.LOJA_VENDA_PARCELAS.CODIGO_FILIAL INNER JOIN
                      dbo.TIPOS_PGTO ON dbo.LOJA_VENDA_PARCELAS.TIPO_PGTO = dbo.TIPOS_PGTO.TIPO_PGTO INNER JOIN
                      dbo.CADASTRO_CLI_FOR ON dbo.LOJA_VENDA_PARCELAS.CODIGO_FILIAL = dbo.CADASTRO_CLI_FOR.CLIFOR



Será que alguem poderia me ajudar eu prociso separar por FormaPagamento e Filial


Obrigado Galera.

#2 Membro offline   samirbh Ícone

  • Programação eficaz = faculdade + pratica + curiosidade
  • Ícone
  • Grupo: Membros
  • Posts: 147
  • Cadastrado: 21-julho 08
  • Sexo:Masculino
  • Localização:Belo Horizonte, MG

Postou 25 outubro 2009 - 11:51

se for o que entendi


use o order by

order by campo1, campo2

sempre se aplica a ultima linha da query, o mesmo faz um especie de classificacao, apresentara os registros ordenado de forma crescente(numerica ou alfa numerica depende do tipo de dado da coluna) se quiser decrecenter faça da seguinte maneira:

order by campo1 desc


espero ter ajudado...

#3 Membro offline   Boris Ícone

  • Ícone
  • Grupo: Membros
  • Posts: 318
  • Cadastrado: 04-abril 04
  • Sexo:Masculino

Postou 26 outubro 2009 - 14:33

Ver postsamirbh, em 25 outubro 2009 - 11:51 , disse:

se for o que entendi


use o order by

order by campo1, campo2

sempre se aplica a ultima linha da query, o mesmo faz um especie de classificacao, apresentara os registros ordenado de forma crescente(numerica ou alfa numerica depende do tipo de dado da coluna) se quiser decrecenter faça da seguinte maneira:

order by campo1 desc


espero ter ajudado...




Maravilha funfo certinho....

#4 Membro offline   Boris Ícone

  • Ícone
  • Grupo: Membros
  • Posts: 318
  • Cadastrado: 04-abril 04
  • Sexo:Masculino

Postou 26 outubro 2009 - 14:37

Galera é o seguinte eu tenho a seguinte estrutura...

id_fecha_caixa
filial
dinheiro
ch_avista
ch_predatado
master_subtotal
visa_subtotal
american_subtotal
hiper_subtotal
vale_produto
vale_cliente
convenio
vale_func_loja
vale_func_folha

porem eu gostaria de saber como eu posso fazer um select pra somar ch_avista + ch_predatado As CHEQUES e master_subtotal + visa_subtotal + american_subtotal + hiper_subtotal AS CARTÃO

e os demais com o mesmo nome...

como eu posso montar esse SELECT ...


Obrigado

#5 Membro offline   Motta Ícone

  • Motta
  • Ícone
  • Grupo: Moderadores
  • Posts: 1996
  • Cadastrado: 13-janeiro 05
  • Localização:Niterói/Rio de Janeiro

Postou 26 outubro 2009 - 18:06

select ch_avista + ch_predatado As CHEQUES from ....

#6 Membro offline   Boris Ícone

  • Ícone
  • Grupo: Membros
  • Posts: 318
  • Cadastrado: 04-abril 04
  • Sexo:Masculino

Postou 26 outubro 2009 - 18:34

Ver postMotta, em 26 outubro 2009 - 18:06 , disse:

select ch_avista + ch_predatado As CHEQUES from ....


desta forma ele está concatenando

300,00100,00

e não somando....

select  ch_avista + ch_predatado As CHEQUES from CONF_RESUMO_CAIXA


#7 Membro online   Mário Monteiro Ícone

  • Amo Você Fabíola. Ao seu lado tudo é perfeito.
  • Ícone
  • Grupo: Administradores
  • Posts: 29701
  • Cadastrado: 24-abril 03
  • Sexo:Masculino
  • Localização:Belém, Pará

Postou 06 novembro 2009 - 21:22

os campos são do tipo texto?

se for precisa converter para números antes de somar

Página 1 de 1
  • Novo tópico
  • Responder

1 usuário(s) está(ão) lendo este tópico
0 membro(s), 1 visitante(s) e 0 membros anônimo(s)