Relatorio agrupado
Tenho as seguintes estruturas de banco de dados:
TABLE ORCAMENTO (
ID_ORCAMENTO INTEGER NOT NULL,
COD_CLIENTE INTEGER NOT NULL,
DATA DATE NOT NULL,
VALOR DOUBLE PRECISION NOT NULL,
DESCONTO DOUBLE PRECISION NOT NULL,
VALOR_TOTAL_ORCAMENTO DOUBLE PRECISION NOT NULL,
STATUS VARCHAR(50) NOT NULL COLLATE WIN_PTBR,
COD_FAZENDA INTEGER NOT NULL,
VALIDADE VARCHAR(50) COLLATE WIN_PTBR
e
TABLE ATRIBUICOES_CLIENTE (
ID_ATRIBUICOES_CLIENTE INTEGER NOT NULL,
COD_CLIENTE INTEGER NOT NULL,
COD_TIPO_CLIENTE INTEGER NOT NULL,
COD_CONSULTOR INTEGER NOT NULL,
COD_SETOR INTEGER NOT NULL,
COD_CATEGORIA INTEGER NOT NULL
Eu preciso de um relatorio que faça um somatorio agrupados por cada setor. Tipo:
Setor 1 100 orçamentos
Setor 2 50 orçamentos
Setor 3 50 orçamentos
Total de Orçamentos 200
Ai vem minha duvida, qual a melhor forma de montar este relatorio? Eu estou usando o Visual Report X para gerar relatorios, mas aceito qualquer tipo de sugestão, seja um grid ou outro componente.Como gerar esta sql?
TABLE ORCAMENTO (
ID_ORCAMENTO INTEGER NOT NULL,
COD_CLIENTE INTEGER NOT NULL,
DATA DATE NOT NULL,
VALOR DOUBLE PRECISION NOT NULL,
DESCONTO DOUBLE PRECISION NOT NULL,
VALOR_TOTAL_ORCAMENTO DOUBLE PRECISION NOT NULL,
STATUS VARCHAR(50) NOT NULL COLLATE WIN_PTBR,
COD_FAZENDA INTEGER NOT NULL,
VALIDADE VARCHAR(50) COLLATE WIN_PTBR
e
TABLE ATRIBUICOES_CLIENTE (
ID_ATRIBUICOES_CLIENTE INTEGER NOT NULL,
COD_CLIENTE INTEGER NOT NULL,
COD_TIPO_CLIENTE INTEGER NOT NULL,
COD_CONSULTOR INTEGER NOT NULL,
COD_SETOR INTEGER NOT NULL,
COD_CATEGORIA INTEGER NOT NULL
Eu preciso de um relatorio que faça um somatorio agrupados por cada setor. Tipo:
Setor 1 100 orçamentos
Setor 2 50 orçamentos
Setor 3 50 orçamentos
Total de Orçamentos 200
Ai vem minha duvida, qual a melhor forma de montar este relatorio? Eu estou usando o Visual Report X para gerar relatorios, mas aceito qualquer tipo de sugestão, seja um grid ou outro componente.Como gerar esta sql?
Paulo Henrique
Curtidas 0
Respostas
Anderson
24/09/2010
Pode ser assim:
select COD_SETOR,count(*) as TOTAL from ATRIBUICOES_CLIENTE group by COD_SETOR;
ou
select Cast(COD_SETOR as VARCHAR(10)) as SETOR,count(*) as TOTAL from ATRIBUICOES_CLIENTE group by COD_SETOR
union
select 'TOTAL' as SETOR,count(*) as TOTAL from ATRIBUICOES_CLIENTE;
Abraços,
Anderson:
select COD_SETOR,count(*) as TOTAL from ATRIBUICOES_CLIENTE group by COD_SETOR;
ou
select Cast(COD_SETOR as VARCHAR(10)) as SETOR,count(*) as TOTAL from ATRIBUICOES_CLIENTE group by COD_SETOR
union
select 'TOTAL' as SETOR,count(*) as TOTAL from ATRIBUICOES_CLIENTE;
Abraços,
Anderson:
GOSTEI 0
Anderson
24/09/2010
Desculpe, fiz confusão e esqueci que são duas tabelas, tente assim:
select L.COD_SETOR,count(*) as TOTAL
from
(select A.COD_SETOR,
(select count(*) from ORCAMENTO O where O.COD_CLIENTE=A.COD_CLIENTE) as TOTAL
from ATRIBUICOES_CLIENTE A) L
group by L.COD_SETOR;
Abraços,
Anderson:.
select L.COD_SETOR,count(*) as TOTAL
from
(select A.COD_SETOR,
(select count(*) from ORCAMENTO O where O.COD_CLIENTE=A.COD_CLIENTE) as TOTAL
from ATRIBUICOES_CLIENTE A) L
group by L.COD_SETOR;
Abraços,
Anderson:.
GOSTEI 0
Paulo Henrique
24/09/2010
Amigo eu não entendi direito, eu preciso somar e você me instruiu a usar o count ta certo isto mesmo?
GOSTEI 0
Eriley Barbosa
24/09/2010
Sim você pediu quantidade e não valor dos orçamentos.
GOSTEI 0
Paulo Henrique
24/09/2010
Peço desculpas eu que errei aqui mesmo, eu acabei mistarando o raciocinio aqui como outro topico que eu criei.
Vou testar e posto o resultado aqui. Obrigado por enquanto.
Vou testar e posto o resultado aqui. Obrigado por enquanto.
GOSTEI 0