[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