[firebase-br] Select com condição
Tecnobyte Informática
temp2 em tecnobyte.com.br
Ter Out 18 15:17:03 -03 2011
Veja se isto te ajuda a encontrar uma solução:
SELECT
CCusto.Codigo,
CCusto.Descricao,
(SELECT SUM(Mov.Valor) FROM CCusto AS CC
JOIN Mov ON Mov.CCusto_Id = CC.Id
WHERE CC.Codigo STARTING WITH CCusto.Codigo) AS Total
FROM CCusto
ORDER BY CCusto.Codigo
Para este exemplo acima considere as seguintes tabelas:
CREATE TABLE CCusto(
Id INTEGER NOT NULL,
Codigo VARCHAR(10) NOT NULL,
Descricao VARCHAR(50) NOT NULL,
...
CONSTRAINT PK_CCusto PRIMARY KEY(Id),
CONSTRAINT UN_CCusto_Codigo UNIQUE(Codigo));
CREATE TABLE Mov(
Id INTEGER NOT NULL,
CCusto_Id INTEGER NOT NULL,
...
Valor NUMERIC(18,2) NOT NULL,
CONSTRAINT PK_Mov PRIMARY KEY(Id),
CONSTRAINT FK_Mov_CCusto FOREIGN KEY(CCusto_Id) REFERENCES CCusto(Id));
Atenciosamente.
Daniel P. Guimarães
Tecnobyte Informática
www.tecnobyte.com.br
-----Mensagem Original-----
From: Fabiano Lima
Sent: Tuesday, October 18, 2011 12:41 PM
To: FireBase
Subject: Re: [firebase-br] Select com condição
Boa tarde Daniel, sim basicamente isto.
Helio, vou checar os codigos com mais atenção, fazer correndo ta me
atrapalhando tb
Obrigado desde ja a todos
____________________________________________
Em 18/10/2011 13:07, Tecnobyte Informática < temp2 em tecnobyte.com.br >
escreveu:
Fabiano, deixe-me ver se entendi seu problema.
--- Movimentação ---
CCusto --- Valor
01.01.01 --- 10,00
01.01.01 --- 15,00
01.01.02 --- 20,00
01.01.03 --- 12,00
01.01.03 --- 5,00
01.01.03 --- 1,00
01.02.01 --- 3,00
01.02.02 --- 2,00
e assim por diante
--- Resultado desejado ---
CCusto ---- Total
01 ---- 68,00
01.01 ---- 63,00
01.01.01 ---- 25,00
01.01.02 ---- 20,00
01.01.03 ---- 18,00
01.02 ---- 5,00
01.02.01 ---- 3,00
01.02.02 ---- 2,00
É isto que desejas?
Atenciosamente.
Daniel P. Guimarães
Tecnobyte Informática
www.tecnobyte.com.br
-----Mensagem Original-----
From: Fabiano Lima
Sent: Tuesday, October 18, 2011 9:55 AM
To: FireBase
Subject: Re: [firebase-br] Select com condição
Wilson e Hélio muito obrigado pessoal.
Mas ainda tenho um problema pois meu CCUSTO contem varios campos alguns com
inicio 03.xx.xx.xx e 04.xx.xx.xx e pra piorar existem campos titulo que não
tem valor eles só tem que receber a soma dos subtitulos.
Agradeço desde ja
Fabiano
____________________________________________
Em 18/10/2011 10:42, Wilson Rosa < wsrosa em gmail.com > escreveu:
Olá Fabiano!
Uma outra opção:
SELECT
left(ccusto,2) as CentroCusto,
titulo,
sum(valor) as Total
FROM
sua_tabela
WHERE
left(ccusto,2) = '01'
and
titulo = 'S'
GROUP BY
left(ccusto,2),
titulo
*Wilson Rosa
Desenvolvedor Desk
wsrosa em gmail.com
*
*
*
Em 18 de outubro de 2011 09:40, Fabiano Lima escreveu:
> Bom dia pessoal.
>
> Estou com um problema (adimito que de lógica).
>
> Preciso montar um relatorio mensal de custos (DMC)
> Na minha tabela de laçamentos possuo os campos CCUSTO, TITULO, TIPO,
VALOR
> e DATA apos alguns lançamentos fica com os valores semalhantes a:
>
>
>
> CCUSTO TITULO TIPO VALOR
> 01.00.00.00 S CREDITO 10
> 01.01.00.00 S CREDITO 120
> 01.01.02.00 N CREDITO 5
> 02.00.00.00 S DEBITO 20
> 02.00.00.99 N DEBITO 15
>
>
>
> Gostaria de somar valores que foram lançados nos campos onde titulo = S
> todos valores que comecem com 01.xx.xx.xx porem não somar quando mudar
para
> 02.xx.xx.xx
> Retornado as somas para que eu use no meu relatorio.
> Isto é possivel?
> Confesso que estou totalmente perdido em como parar a soma quando mudar
os
> 2 primeiro digitos do centro de custo.
>
>
> Agradeço qualquer ajuda.
>
Mais detalhes sobre a lista de discussão lista