Query do sql
Ola amigos da consultoria
como o rodrigo carreiro ja tem uma copia do meu banco de dados ai se quizerem passar acho que facilita
eu nao sei por qual o motivo essa query nao esta funcionando corretamente
-- Author: Regis
-- Create date: 24/05/2009 09:03:00
-- Description: Consulta no caixa ABERTO
CREATE PROCEDURE PRS_CONSULTA_CAIXA_ABERTO
AS
BEGIN
SET NOCOUNT ON;
SELECT
RIGHT(CONVERT(VARCHAR,A.DT_LANCAMENTO),6) AS HORA,
k.dt_abertura,
B.DS_TIPO_LANCAMENTO,
A.VL_LANCAMENTO,
A.NR_MATRICULA,
D.Usuario,
D.NM_USUARIO ,
A.ID_ABERTURA_CAIXA ,
VL_DESPESA = CASE B.Fl_Receita WHEN 1 THEN 0 ELSE A.VL_LANCAMENTO END,
VL_RECEITA = CASE B.Fl_Receita WHEN 1 THEN A.VL_LANCAMENTO ELSE 0 END,
VL_SALDO = CASE B.Fl_Receita WHEN 1 THEN A.VL_LANCAMENTO ELSE 0 END -CASE B.Fl_Receita WHEN 1 THEN 0 ELSE A.VL_LANCAMENTO END,
B.Fl_Receita
FROM TB_MOVIMENTACAO_CAIXA AS A
INNER JOIN TB_TIPO_LANCAMENTO AS B ON A.ID_TIPO_LANCAMENTO=B.ID_TIPO_LANCAMENTO
left JOIN TB_FECHAMENTO_CAIXA AS F ON A.ID_ABERTURA_CAIXA=F.ID_ABERTURA_CAIXA
inner join tb_abertura_caixa as k on a.id_abertura_caixa = K.id_abertura_caixa
left JOIN USUARIO AS D ON A.ID_FUNCIONARIO = D.ID_USUARIO
WHERE F.DT_FECHAMENTO IS NULL
order by id_movimentacao desc
END
essa proc tem funcionar da seguinte maneira
tem que ser um resumo das atividades do caixa em aberto , trazer quantos lancamentos foram realizados if despesas quantos ? nao sei trabalhar com if no sql so case mesmo
e o mais incrivel e que ela nao retorna o valor das depesas ta somando tudo
Carlos Faria
Curtidas 0
Respostas
Rodrigo Mourão
27/05/2009
Olá Carlos,
Eu rodei seu select aqui, simulei alguns dados de Receita outros de Despesas. Bem o select retornou certo, os registros com sues respectivos valores etc.
Qual o problema que está ocorrendo? Você diz no final do seu post que tinha que trazer a quantidade. O que você quer que seja exibido: O total de receita e despesa, tipo
Despesas 1000,00 Receita 5000,00
ou entao
25 Despesas 30 Receitas
ou você quer mostrar cada uma deles e no final o total ???
Preciso saber o que realmente precisa pois o select está corredo do ponto de vista de trazer os dados de acordo com a condição estabelecida.
No aguardo, abs.
Atenciosamente,
Rodrigo Carreiro Mourão
Borland Instructor Certified
Coordenador da Consultoria em Delphi
Eu rodei seu select aqui, simulei alguns dados de Receita outros de Despesas. Bem o select retornou certo, os registros com sues respectivos valores etc.
Qual o problema que está ocorrendo? Você diz no final do seu post que tinha que trazer a quantidade. O que você quer que seja exibido: O total de receita e despesa, tipo
Despesas 1000,00 Receita 5000,00
ou entao
25 Despesas 30 Receitas
ou você quer mostrar cada uma deles e no final o total ???
Preciso saber o que realmente precisa pois o select está corredo do ponto de vista de trazer os dados de acordo com a condição estabelecida.
No aguardo, abs.
Atenciosamente,
Rodrigo Carreiro Mourão
Borland Instructor Certified
Coordenador da Consultoria em Delphi
GOSTEI 0
Carlos Faria
27/05/2009
Ola Wesley
peço desculpas por nao ter resolvido os chamados hoje ,estou correndo atraz de resolver aquele maldito problema com a maldita da imprensora bematech mp20 ou caso contrario todo meu projeto esta ameaçãdo de ser migrado para outra linguagem e claro outro programador vai tomar meu lugar tambem.
Nao to afim que isso aconteça.
Vou passar o fim de semana consultando paes de santo, mae Dina,Mãe de santo o que for preciso para resolver aquele maldito e no maximo ate na terça se eu ainda tiver emprego eu respondo todos os chamados
GOSTEI 0
Carlos Faria
27/05/2009
Ola Rodrigo
vamos la na verdade eu te enviei a proc errada realmente com essa ai ta tudo certo a proc verdadeira é essa aqui
--REGIS
--28/05/2009 01:20
--RESUME TODA A MOVIMENTAL DE TAL CAIXA
alter PROCEDURE PROC_VISUALIZA_CAIXA
(@CAIXA INT )
AS
SELECT TOP 1 M.ID_ABERTURA_CAIXA as CAIXA ,
A.DT_ABERTURA,
U.USUARIO,
U.NM_USUARIO,
B.DT_FECHAMENTO,
(select count (m.id_abertura_caixa) from tb_movimentacao_caixa as m inner join tb_tipo_lancamento as t on m.id_tipo_lancamento =t.id_tipo_lancamento where t.fl_receita = 1 AND ID_ABERTURA_CAIXA = @CAIXA ) AS LANCAMENTORECEITAS ,
(select count (m.id_abertura_caixa) from tb_movimentacao_caixa as m inner join tb_tipo_lancamento as t on m.id_tipo_lancamento =t.id_tipo_lancamento where t.fl_receita = 0 AND ID_ABERTURA_CAIXA = @CAIXA ) AS LANCAMENTODESPESAS ,
-(select SUM (m.VL_LANCAMENTO) from tb_movimentacao_caixa as m inner join tb_tipo_lancamento as t on m.id_tipo_lancamento =t.id_tipo_lancamento where t.fl_receita = 0 AND ID_ABERTURA_CAIXA = @CAIXA ) AS TOTALDESPESAS ,
(select SUM (m.VL_LANCAMENTO) from tb_movimentacao_caixa as m inner join tb_tipo_lancamento as t on m.id_tipo_lancamento =t.id_tipo_lancamento where t.fl_receita = 1 AND ID_ABERTURA_CAIXA = @CAIXA ) AS TOTALRECEITAS
-- VL_SALDO = CASE T.Fl_Receita WHEN 1 THEN M.VL_LANCAMENTO ELSE 0 END -CASE T.Fl_Receita WHEN 1 THEN 0 ELSE M.VL_LANCAMENTO END
FROM TB_MOVIMENTACAO_CAIXA AS M INNER JOIN
TB_TIPO_LANCAMENTO AS T ON T.ID_TIPO_LANCAMENTO =M.ID_TIPO_LANCAMENTO INNER JOIN
TB_ABERTURA_CAIXA AS A ON M.ID_ABERTURA_CAIXA =A.ID_ABERTURA_CAIXA LEFT JOIN
TB_FECHAMENTO_CAIXA AS B ON M.ID_ABERTURA_CAIXA =B.ID_ABERTURA_CAIXA inner join
USUARIO AS U ON M.ID_FUNCIONARIO =U.ID_USUARIO
WHERE M.ID_ABERTURA_CAIXA = @CAIXA
ele esta funcionando corretamento porem do meu jeitinho que eu dei aqui mais precisamos corrigir esses jeitinhos
primeito deles observe a intrução SELECT TOP 1 M.ID_ABERTURA_CAIXA as CAIXA é uma gambiarra mais que esta funcionando tive que colocar o top 1 ali caso o sql me mostra 3 results com os mesmos valores isso é um erro onde eu ate modestia parte falando entendo bem de sql mais nao consegui resolve-lo
segundo erro essas subquery fica dificil demais dar manuntencao ou entender um codigo desses no futuro deve ter uma maneira melhor de fazer isso
terceiro e ultimo essa proc deve funcionar da seguinte maneira
o usuario passar o parametro @caixa que e o caixa que esta aberto e ela resume em unica linha
Totallancamentosreceita ,totallancamentosdespesa,totalreceita,totalsaida,totalsaldo e mesmo que seja nao tenha nada la para mostrar nenhum lancamento ela tem que me trazer um select mostrando data de abertura do caixa e 0 nos campos nulls
se vc preciser de uma copia atualizada do banco eu te envio ok
GOSTEI 0
Rodrigo Mourão
27/05/2009
Vamos lá Carlos, vamos simplificar isso ai atraves de funções. Eu vou criar uma aqui como exemplo e quero que voce crie as outras. Vamos pegar os valores de LANCAMENTORECEITAS, LANCAMENTODESPESAS, TOTALDESPESAS, TOTALRECEITAS.
Por exemplo, veja como ficaria a primeira função:
CREATE Function FNC_GET_LANCAMENTORECEITA(@IDCX int)
RETURNS Int
AS
BEGIN
DECLARE @Retorno int
SET @Retorno=(select count (m.id_abertura_caixa) from tb_movimentacao_caixa as m inner join tb_tipo_lancamento as t on
m.id_tipo_lancamento =t.id_tipo_lancamento where t.fl_receita = 1 AND m.ID_ABERTURA_CAIXA = @IDCX )
IF @Retorno IS NULL
SET @Retorno = 0
RETURN @Retorno
END
Essa função acima vai retornar a quantidade de lançamentos de receita ou zero se nao tiver nada. Repare como ficará sua procedure com ela:
alter PROCEDURE PROC_VISUALIZA_CAIXA (@CAIXA INT )
AS
SELECT DISTINCT M.ID_ABERTURA_CAIXA as CAIXA ,
A.DT_ABERTURA,
U.USUARIO,
U.NM_USUARIO,
B.DT_FECHAMENTO,
LANCAMENTORECEITAS = FNC_GET_LANCAMENTORECEITA,
(select count (m.id_abertura_caixa) from tb_movimentacao_caixa as m inner join tb_tipo_lancamento as t on m.id_tipo_lancamento =t.id_tipo_lancamento where t.fl_receita = 0 AND ID_ABERTURA_CAIXA = @CAIXA ) AS LANCAMENTODESPESAS ,
-(select SUM (m.VL_LANCAMENTO) from tb_movimentacao_caixa as m inner join tb_tipo_lancamento as t on m.id_tipo_lancamento =t.id_tipo_lancamento where t.fl_receita = 0 AND ID_ABERTURA_CAIXA = @CAIXA ) AS TOTALDESPESAS ,
(select SUM (m.VL_LANCAMENTO) from tb_movimentacao_caixa as m inner join tb_tipo_lancamento as t on m.id_tipo_lancamento =t.id_tipo_lancamento where t.fl_receita = 1 AND ID_ABERTURA_CAIXA = @CAIXA ) AS TOTALRECEITAS
--VL_SALDO = CASE T.Fl_Receita WHEN 1 THEN M.VL_LANCAMENTO ELSE 0 END -CASE T.Fl_Receita WHEN 1 THEN 0 ELSE M.VL_LANCAMENTO END
FROM TB_MOVIMENTACAO_CAIXA AS M INNER JOIN
TB_TIPO_LANCAMENTO AS T ON T.ID_TIPO_LANCAMENTO =M.ID_TIPO_LANCAMENTO INNER JOIN
TB_ABERTURA_CAIXA AS A ON M.ID_ABERTURA_CAIXA =A.ID_ABERTURA_CAIXA LEFT JOIN
TB_FECHAMENTO_CAIXA AS B ON M.ID_ABERTURA_CAIXA =B.ID_ABERTURA_CAIXA inner join
USUARIO AS U ON M.ID_FUNCIONARIO =U.ID_USUARIO
WHERE M.ID_ABERTURA_CAIXA = @CAIXA
Veja as linhas em vermelho, o distinct serve para não replicar registros iguais, correto ? E eu substitui um sub select pela funcão que eu criei. Agora faça o mesmo, crie mais tres funcoes assim como eu fiz.
Abs,
Atenciosamente,
Rodrigo Carreiro Mourão
Borland Instructor Certified
Coordenador da Consultoria em Delphi
Por exemplo, veja como ficaria a primeira função:
CREATE Function FNC_GET_LANCAMENTORECEITA(@IDCX int)
RETURNS Int
AS
BEGIN
DECLARE @Retorno int
SET @Retorno=(select count (m.id_abertura_caixa) from tb_movimentacao_caixa as m inner join tb_tipo_lancamento as t on
m.id_tipo_lancamento =t.id_tipo_lancamento where t.fl_receita = 1 AND m.ID_ABERTURA_CAIXA = @IDCX )
IF @Retorno IS NULL
SET @Retorno = 0
RETURN @Retorno
END
Essa função acima vai retornar a quantidade de lançamentos de receita ou zero se nao tiver nada. Repare como ficará sua procedure com ela:
alter PROCEDURE PROC_VISUALIZA_CAIXA (@CAIXA INT )
AS
SELECT DISTINCT M.ID_ABERTURA_CAIXA as CAIXA ,
A.DT_ABERTURA,
U.USUARIO,
U.NM_USUARIO,
B.DT_FECHAMENTO,
LANCAMENTORECEITAS = FNC_GET_LANCAMENTORECEITA,
(select count (m.id_abertura_caixa) from tb_movimentacao_caixa as m inner join tb_tipo_lancamento as t on m.id_tipo_lancamento =t.id_tipo_lancamento where t.fl_receita = 0 AND ID_ABERTURA_CAIXA = @CAIXA ) AS LANCAMENTODESPESAS ,
-(select SUM (m.VL_LANCAMENTO) from tb_movimentacao_caixa as m inner join tb_tipo_lancamento as t on m.id_tipo_lancamento =t.id_tipo_lancamento where t.fl_receita = 0 AND ID_ABERTURA_CAIXA = @CAIXA ) AS TOTALDESPESAS ,
(select SUM (m.VL_LANCAMENTO) from tb_movimentacao_caixa as m inner join tb_tipo_lancamento as t on m.id_tipo_lancamento =t.id_tipo_lancamento where t.fl_receita = 1 AND ID_ABERTURA_CAIXA = @CAIXA ) AS TOTALRECEITAS
--VL_SALDO = CASE T.Fl_Receita WHEN 1 THEN M.VL_LANCAMENTO ELSE 0 END -CASE T.Fl_Receita WHEN 1 THEN 0 ELSE M.VL_LANCAMENTO END
FROM TB_MOVIMENTACAO_CAIXA AS M INNER JOIN
TB_TIPO_LANCAMENTO AS T ON T.ID_TIPO_LANCAMENTO =M.ID_TIPO_LANCAMENTO INNER JOIN
TB_ABERTURA_CAIXA AS A ON M.ID_ABERTURA_CAIXA =A.ID_ABERTURA_CAIXA LEFT JOIN
TB_FECHAMENTO_CAIXA AS B ON M.ID_ABERTURA_CAIXA =B.ID_ABERTURA_CAIXA inner join
USUARIO AS U ON M.ID_FUNCIONARIO =U.ID_USUARIO
WHERE M.ID_ABERTURA_CAIXA = @CAIXA
Veja as linhas em vermelho, o distinct serve para não replicar registros iguais, correto ? E eu substitui um sub select pela funcão que eu criei. Agora faça o mesmo, crie mais tres funcoes assim como eu fiz.
Abs,
Atenciosamente,
Rodrigo Carreiro Mourão
Borland Instructor Certified
Coordenador da Consultoria em Delphi
GOSTEI 0
Rodrigo Mourão
27/05/2009
Corrigindo:
LANCAMENTORECEITAS = FNC_GET_LANCAMENTORECEITA(@caixa)
Abs
Atenciosamente,
Rodrigo Carreiro Mourão
Borland Instructor Certified
Coordenador da Consultoria em Delphi
LANCAMENTORECEITAS = FNC_GET_LANCAMENTORECEITA(@caixa)
Abs
Atenciosamente,
Rodrigo Carreiro Mourão
Borland Instructor Certified
Coordenador da Consultoria em Delphi
GOSTEI 0
Carlos Faria
27/05/2009
Ola Rodrigo
Maravilha de exemplo porem ao executar aqui no sqlserver ta dando um erro que nao consegui localizar
Msg 207, Level 16, State 1, Procedure PROC_VISUALIZA_CAIXA, Line 8
Invalid column name 'FNC_GET_LANCAMENTORECEITA'.
parece que ele nao ta achando a function
GOSTEI 0
Carlos Faria
27/05/2009
Msg 195, Level 15, State 10, Procedure PROC_VISUALIZA_CAIXA, Line 8
'FNC_GET_LANCAMENTORECEITA' is not a recognized built-in function name.
GOSTEI 0
Rodrigo Mourão
27/05/2009
Carlos você rodou o script para criar a funcao no banco. Tem que criar a funcao no banco primeiro. Repare que o primeiro codigo que te mandei foi para criar a funcao depois altera a procedure.
Abs!
Abs!
GOSTEI 0
Carlos Faria
27/05/2009
Rodrigo
Eu rodei sim a function ta criada mais esta dando esse erro !
GOSTEI 0
Carlos Faria
27/05/2009
Msg 195, Level 15, State 10, Procedure PROC_VISUALIZA_CAIXA, Line 8
'FNC_GET_LANCAMENTORECEITA' is not a recognized built-in function name.
GOSTEI 0
Carlos Faria
27/05/2009
create Function FNC_GET_LANCAMENTORECEITA(@CAIXA Int)
RETURNS Int
AS
BEGIN
DECLARE @Retorno int
SET @Retorno=(select count (m.id_abertura_caixa) from tb_movimentacao_caixa as m inner join tb_tipo_lancamento as t on
m.id_tipo_lancamento =t.id_tipo_lancamento where t.fl_receita = 1 AND m.ID_ABERTURA_CAIXA = @CAIXA )
IF @Retorno IS NULL SET @Retorno = 0
RETURN @Retorno
END
--------------------------------------------------------------------------------------------------------
alter PROCEDURE PROC_VISUALIZA_CAIXA (@CAIXA INT )
AS
SELECT DISTINCT M.ID_ABERTURA_CAIXA as CAIXA ,
A.DT_ABERTURA,
U.USUARIO,
U.NM_USUARIO,
B.DT_FECHAMENTO,
lancamentosreceita = FNC_GET_LANCAMENTORECEITA (@CAIXA)
FROM TB_MOVIMENTACAO_CAIXA AS M INNER JOIN
TB_TIPO_LANCAMENTO AS T ON T.ID_TIPO_LANCAMENTO =M.ID_TIPO_LANCAMENTO INNER JOIN
TB_ABERTURA_CAIXA AS A ON M.ID_ABERTURA_CAIXA =A.ID_ABERTURA_CAIXA LEFT JOIN
TB_FECHAMENTO_CAIXA AS B ON M.ID_ABERTURA_CAIXA =B.ID_ABERTURA_CAIXA inner join
USUARIO AS U ON M.ID_FUNCIONARIO =U.ID_USUARIO
WHERE M.ID_ABERTURA_CAIXA = @CAIXA
GOSTEI 0
Carlos Faria
27/05/2009
VEJA COMO FICOU AS FUNCTIONS
CREATE Function FNC_GET_LANCAMENTORECEITA(@IDCX int)
RETURNS Int
AS
BEGIN
DECLARE @Retorno int SET @Retorno=(select count (m.id_abertura_caixa) from tb_movimentacao_caixa as m inner join tb_tipo_lancamento as t on m.id_tipo_lancamento =t.id_tipo_lancamento where t.fl_receita = 1 AND m.ID_ABERTURA_CAIXA = @IDCX )
IF @Retorno IS NULL SET @Retorno = 0 RETURN @Retorno
END
CREATE Function FNC_GET_LANCAMENTODESPESA(@IDCX int)
RETURNS Int
AS
BEGIN
DECLARE @Retorno int
SET @Retorno=(select count (m.id_abertura_caixa) from tb_movimentacao_caixa as m inner join tb_tipo_lancamento as t on
m.id_tipo_lancamento =t.id_tipo_lancamento where t.fl_receita = 0 AND m.ID_ABERTURA_CAIXA = @IDCX ) IF @Retorno IS NULL SET @Retorno = 0 RETURN @Retorno
END
CREATE Function FNC_GET_SOMARECEITA(@IDCX int)
RETURNS Int
AS
BEGIN
DECLARE @Retorno int
SET @Retorno=(select SUM (m.VL_LANCAMENTO) from tb_movimentacao_caixa as m inner join tb_tipo_lancamento as t on
m.id_tipo_lancamento =t.id_tipo_lancamento where t.fl_receita = 1 AND m.ID_ABERTURA_CAIXA = @IDCX ) IF @Retorno IS NULL SET @Retorno = 0 RETURN @Retorno
END
CREATE Function FNC_GET_SOMADESPESA(@IDCX int)
RETURNS Int
AS
BEGIN
DECLARE @Retorno int
SET @Retorno=(select SUM (m.VL_LANCAMENTO) from tb_movimentacao_caixa as m inner join tb_tipo_lancamento as t on
m.id_tipo_lancamento =t.id_tipo_lancamento where t.fl_receita = 0 AND m.ID_ABERTURA_CAIXA = @IDCX ) IF @Retorno IS NULL SET @Retorno = 0 RETURN @Retorno
END
-------------------------------------------------------------------------------------------------
--PROCEDURE
CREATE PROCEDURE PROC_VISUALIZA_CAIXA (@IDCX INT )
AS
SELECT DISTINCT M.ID_ABERTURA_CAIXA as CAIXA ,
A.DT_ABERTURA,
U.USUARIO,
U.NM_USUARIO,
B.DT_FECHAMENTO,
LANCAMENTORECEITAS = FNC_GET_LANCAMENTORECEITA(@IDCX),
LANCAMENTOSDESPESA = FNC_GET_LANCAMENTODESPESA(@IDCX),
SOMARECEITA = FNC_GET_SOMARECEITA(@IDCX),
SOMADESPESA = FNC_GET_SOMADESPESA(@IDCX)
SOMADESPESA =
FROM TB_MOVIMENTACAO_CAIXA AS M INNER JOIN
TB_TIPO_LANCAMENTO AS T ON T.ID_TIPO_LANCAMENTO =M.ID_TIPO_LANCAMENTO INNER JOIN
TB_ABERTURA_CAIXA AS A ON M.ID_ABERTURA_CAIXA =A.ID_ABERTURA_CAIXA LEFT JOIN
TB_FECHAMENTO_CAIXA AS B ON M.ID_ABERTURA_CAIXA =B.ID_ABERTURA_CAIXA inner join
USUARIO AS U ON M.ID_FUNCIONARIO =U.ID_USUARIO
WHERE M.ID_ABERTURA_CAIXA = @IDCX
--NA HORA DE RODAR
----
Msg 195, Level 15, State 10, Procedure PROC_VISUALIZA_CAIXA, Line 8
'FNC_GET_LANCAMENTORECEITA' is not a recognized built-in function name.
GOSTEI 0
Rodrigo Mourão
27/05/2009
Carlos mande um backup novo do seu banco para eu testar nele, se possivel esse que vc ja criou as functions.
Abs !!
Abs !!
GOSTEI 0
Carlos Faria
27/05/2009
OLA Rodrigo
segue o link do banco de dados sqlserver 2005 developer studio e tbem do projeto caso precise no futuro
Tentei gravar uma video para vc ver mais é impossivel enviar direto pelo devmedia so para vc ter uma ideia esse backup do sqlserver gastou 45:minutos para se fazer o upload
projeto
https://www.devmedia.com.br/imagens/discovirtual/187481/20093105.zip
banco de dados sqlserver
https://www.devmedia.com.br/imagens/discovirtual/187481/BACKUP20093105.rar
https://www.devmedia.com.br/imagens/discovirtual/187481/BACKUP20093105.rar
GOSTEI 0
Carlos Faria
27/05/2009
Ola Rodrigo
Podemos encerrar hoje esse chamado ?
GOSTEI 0
Rodrigo Mourão
27/05/2009
Olá Carlos,
Alterei a rotina, era so colocar dbo. antes do nome das funções. Fiz a alteração na sua base e rodei.
ALTER PROCEDURE [dbo].[PROC_VISUALIZA_CAIXA]
(@CAIXA INT )
AS
SELECT distinct M.ID_ABERTURA_CAIXA as CAIXA ,
A.DT_ABERTURA,
U.USUARIO,
U.NM_USUARIO,
B.DT_FECHAMENTO,
LANCAMENTORECEITAS = dbo.FNC_GET_LANCAMENTORECEITA(@CAIXA) ,
LANCAMENTODESPESAS = dbo.FNC_GET_LANCAMENTOdespesa(@CAIXA),
TOTALDESPESAS = dbo.FNC_GET_SOMADESPESA(@CAIXA),
TOTALRECEITAS = dbo.FNC_GET_SOMACAIXA(@CAIXA)
FROM TB_MOVIMENTACAO_CAIXA AS M INNER JOIN
TB_TIPO_LANCAMENTO AS T ON T.ID_TIPO_LANCAMENTO =M.ID_TIPO_LANCAMENTO INNER JOIN
TB_ABERTURA_CAIXA AS A ON M.ID_ABERTURA_CAIXA =A.ID_ABERTURA_CAIXA LEFT JOIN
TB_FECHAMENTO_CAIXA AS B ON M.ID_ABERTURA_CAIXA =B.ID_ABERTURA_CAIXA inner join
USUARIO AS U ON M.ID_FUNCIONARIO =U.ID_USUARIO
WHERE M.ID_ABERTURA_CAIXA = @CAIXA
Funcionou perfeitamente. Passei o caixa 17 e retornou as linha abaixo:
17 2008-02-29 19:21:00 REGIS Carlos Regis de faria 2008-03-05 22:36:00 30 0 0 533
Abs.
Atenciosamente,
Rodrigo Carreiro Mourão
Borland Instructor Certified
Coordenador da Consultoria em Delphi
Alterei a rotina, era so colocar dbo. antes do nome das funções. Fiz a alteração na sua base e rodei.
ALTER PROCEDURE [dbo].[PROC_VISUALIZA_CAIXA]
(@CAIXA INT )
AS
SELECT distinct M.ID_ABERTURA_CAIXA as CAIXA ,
A.DT_ABERTURA,
U.USUARIO,
U.NM_USUARIO,
B.DT_FECHAMENTO,
LANCAMENTORECEITAS = dbo.FNC_GET_LANCAMENTORECEITA(@CAIXA) ,
LANCAMENTODESPESAS = dbo.FNC_GET_LANCAMENTOdespesa(@CAIXA),
TOTALDESPESAS = dbo.FNC_GET_SOMADESPESA(@CAIXA),
TOTALRECEITAS = dbo.FNC_GET_SOMACAIXA(@CAIXA)
FROM TB_MOVIMENTACAO_CAIXA AS M INNER JOIN
TB_TIPO_LANCAMENTO AS T ON T.ID_TIPO_LANCAMENTO =M.ID_TIPO_LANCAMENTO INNER JOIN
TB_ABERTURA_CAIXA AS A ON M.ID_ABERTURA_CAIXA =A.ID_ABERTURA_CAIXA LEFT JOIN
TB_FECHAMENTO_CAIXA AS B ON M.ID_ABERTURA_CAIXA =B.ID_ABERTURA_CAIXA inner join
USUARIO AS U ON M.ID_FUNCIONARIO =U.ID_USUARIO
WHERE M.ID_ABERTURA_CAIXA = @CAIXA
Funcionou perfeitamente. Passei o caixa 17 e retornou as linha abaixo:
17 2008-02-29 19:21:00 REGIS Carlos Regis de faria 2008-03-05 22:36:00 30 0 0 533
Abs.
Atenciosamente,
Rodrigo Carreiro Mourão
Borland Instructor Certified
Coordenador da Consultoria em Delphi
GOSTEI 0
Carlos Faria
27/05/2009
É isso ai grande Rodrigo
Mais um chamado resolvido
nem precisa dizer , da um ok ai valeu
GOSTEI 0