Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Morpheus#2005

Somatorio Complicado

Recommended Posts

Opa beleza galera...me da um helpzinho..

 

Saca só..eu preciso fazer esse somatório de modo mais simples, para evitar o processamento no Servidor...

 

 

SELECT 
id, 
Cad_risco_1,
cad_risco_1_receita + 
cad_risco_1_igq + 
cad_risco_1_pc_desp + 
cad_risco_1_processo + 
cad_risco_1_pessoas as Total_R1,
Cad_risco_2,
cad_risco_2_receita +
cad_risco_2_igq + 
cad_risco_2_pc_desp + 
cad_risco_2_processo + 
cad_risco_2_pessoas as Total_R2,
Cad_risco_3,
cad_risco_3_receita +
cad_risco_3_igq + 
cad_risco_3_pc_desp + 
cad_risco_3_processo + 
cad_risco_3_pessoas as Total_R3,
Cad_risco_4,
cad_risco_4_receita +
cad_risco_4_igq + 
cad_risco_4_pc_desp + 
cad_risco_4_processo + 
cad_risco_4_pessoas as Total_R4,
Cad_risco_5,
cad_risco_5_receita +
cad_risco_5_igq + 
cad_risco_5_pc_desp + 
cad_risco_5_processo + 
cad_risco_5_pessoas as Total_R5,
Cad_risco_6,
cad_risco_6_receita +
cad_risco_6_igq + 
cad_risco_6_pc_desp + 
cad_risco_6_processo + 
cad_risco_6_pessoas as Total_R6

FROM dbo.cad_np

group by  

id, 
Cad_risco_1,
cad_risco_1_receita , 
cad_risco_1_igq , 
cad_risco_1_pc_desp , 
cad_risco_1_processo , 
cad_risco_1_pessoas as Total_R1,
Cad_risco_2,
cad_risco_2_receita ,
cad_risco_2_igq , 
cad_risco_2_pc_desp , 
cad_risco_2_processo , 
cad_risco_2_pessoas as Total_R2,
Cad_risco_3,
cad_risco_3_receita ,
cad_risco_3_igq , 
cad_risco_3_pc_desp , 
cad_risco_3_processo , 
cad_risco_3_pessoas as Total_R3,
Cad_risco_4,
cad_risco_4_receita ,
cad_risco_4_igq , 
cad_risco_4_pc_desp , 
cad_risco_4_processo , 
cad_risco_4_pessoas as Total_R4,
Cad_risco_5,
cad_risco_5_receita ,
cad_risco_5_igq , 
cad_risco_5_pc_desp , 
cad_risco_5_processo , 
cad_risco_5_pessoas as Total_R5,
Cad_risco_6,
cad_risco_6_receita ,
cad_risco_6_igq , 
cad_risco_6_pc_desp , 
cad_risco_6_processo , 
cad_risco_6_pessoas as Total_R6

Po valeu por qualquer ajuda..

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não sei os tipos de dados, mas de uma olhada no book on line do sql na função: SUM aggregate function que vai lhe ajudar.

 

Abçs

Compartilhar este post


Link para o post
Compartilhar em outros sites

hUM...como eu faço para fazer uma média dessas somas...estou usando o AVG mas ele nao esta fundando?

 

SELECT AVG(cad_risco_1_receita + cad_risco_1_igq + cad_risco_1_pc_desp + cad_risco_1_processo + cad_risco_1_pessoas) as Media_R1
FROM dbo.cad_np

Ok

Compartilhar este post


Link para o post
Compartilhar em outros sites

Hum Junior..

 

Eu preciso tirar a media em linhas e nao em colunas tipo :

 

Linha 1 | Linha 2 | Linha 3 Soma Media

 

3 3 10 16 8

 

Os dados estão com campo INT.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Morpheus,

 

olha o que eu gerei, de uma olhada:

 

create table #temp (produto varchar(50), valor int)

insert into #temp (produto,valor) values ('produto a', 10)
insert into #temp (produto,valor) values ('produto a', 10)

insert into #temp (produto,valor) values ('produto b', 23)
insert into #temp (produto,valor) values ('produto b', 50)

insert into #temp (produto,valor) values ('produto c', 1)
insert into #temp (produto,valor) values ('produto c', 9)
insert into #temp (produto,valor) values ('produto c', 8)

insert into #temp (produto,valor) values ('produto d', 10)
insert into #temp (produto,valor) values ('produto d', 15)



SELECT produto, SUM(valor) as soma, avg(valor) as media
FROM #temp
GROUP BY produto
ORDER BY produto
GO


drop table #temp

Compartilhar este post


Link para o post
Compartilhar em outros sites

Po cara..ficou bom...mas e se fosse bases diferentes...tipo Produtos,Valor1, Valor2,Valor3.

 

Tem como eu guardar a soma do Valor 1 + Valor 2 + Valor3 numa variavel e depois exibir.

 

Eu preciso somar na Horizontal, três tabelas diferentes no mesmo banco.

 

Tipo :

 

Linha 1 | Linha 2 | Linha 3

3 3 10

5 3 5

 

Resultado :

 

Tot_Linha1 = 8

Tot_Linha2 = 6

Tot_Linha3 = 15

 

Po agradeço a sua ajuda..

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pior que o AVG soh aceita um parametro, por mais que você coloque a soma em uma variavel, qdo ele tenta executar a media, ele vai enxergar somente como um unico numero.

Nao consegui pensar agora em outro modo:

fiz assim:

 

create table #temp (produto varchar(50), valor1 int, valor2 int, valor3 int)

insert into #temp (produto,valor1, valor2, valor3) values ('produto a', 1,2,3)
insert into #temp (produto,valor1, valor2, valor3) values ('produto a', 10,20,30)
insert into #temp (produto,valor1, valor2, valor3) values ('produto b', 23,20,30)
insert into #temp (produto,valor1, valor2, valor3) values ('produto b', 50,20,30)
insert into #temp (produto,valor1, valor2, valor3) values ('produto c', 1,20,30)
insert into #temp (produto,valor1, valor2, valor3) values ('produto c', 9,20,30)
insert into #temp (produto,valor1, valor2, valor3) values ('produto c', 8,20,30)
insert into #temp (produto,valor1, valor2, valor3) values ('produto d', 10,20,30)
insert into #temp (produto,valor1, valor2, valor3) values ('produto d', 15,20,30)



SELECT produto, SUM(valor1+valor2+valor3) as soma, (sum(valor1+valor2+valor3)/6) as media
FROM #temp
GROUP BY produto 
ORDER BY produto


drop table #temp

Compartilhar este post


Link para o post
Compartilhar em outros sites

Juska....eu uma vez vi o Eriva fazer algo tipo assim ...guardar em variaveis mas eu nao sei fazer...

 

Erivvvvvvvaaa help-me...rss

Compartilhar este post


Link para o post
Compartilhar em outros sites

Juska....eu uma vez vi o Eriva fazer algo tipo assim ...guardar em variaveis mas eu nao sei fazer...

 

Erivvvvvvvaaa help-me...rss

pra guardar em variavel é só declarar a variavel a atribuir no select, exemplo:

declare @var int
select @var = campo from tabela where blablabla...
e assim por diante, no final faz as contas necessárias

Compartilhar este post


Link para o post
Compartilhar em outros sites

eriva,

mas ai eh q esta, como ele esta usando a funcao AVG, qdo você usa uma variavel ele nao funfa, para soma trankilo, mas media nope

 

Mopheus, para tirar media ainda acho que você vai ter q fazer do modo que postei ^^ acho neh ^^

Abçs

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu montei do jeito que o JUSKA disse e deu certo porém:

 

SELECT PROD, SUM(V1 + V2 + V3 + V4 + V5) AS SOMA, SUM(V1 + V2 + V3 + V4 + V5) / 5 AS MEDIA
FROM	TESTE
GROUP BY PROD

Lá na media teria que ser um COUNT,nao pode ser numero fixo nao...como fazer ??? ficaria mais ou menos assim:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, em particular nao conheço um meio de se fazer um count em campos, tipo qtos campos tem uma determinada tabela. Vou dar uma pesquisada no BO e na net pra ver se acho. Qm achar 1. posta ^^

 

Abçs

Compartilhar este post


Link para o post
Compartilhar em outros sites

Morpheus, de uma olhada neste funcao:

CREATE FUNCTION F_COLUMNCOUNT (

	@Table_Name_Pattern sysname = NULL -- Pattern for matching 
								-- to the table name, Null=all
  , @Col_Name_Pattern sysname  = NULL -- Pattern for matching 
								-- to the column name, NULL=all
)   RETURNS TABLE


AS RETURN

SELECT TOP 100 PERCENT WITH TIES
		c.TABLE_NAME
	  , COUNT(*) NumColumns
	FROM  INFORMATION_SCHEMA.[COLUMNS] c
		inner join INFORMATION_SCHEMA.[TABLES] t
		   ON  C.TABLE_SCHEMA = t.TABLE_SCHEMA
		   and c.TABLE_NAME = T.TABLE_NAME
	WHERE TABLE_TYPE = 'BASE TABLE'
	   and 0=OBJECTPROPERTY(OBJECT_ID(t.TABLE_NAME),
							'IsMSShipped')
	   and (@Table_name_pattern IS NULL 
			  or c.TABLE_NAME LIKE @Table_Name_Pattern)
	   and (@Col_Name_Pattern IS NULL 
			  or c.COLUMN_NAME LIKE @Col_Name_Pattern)
	GROUP BY c.TABLE_NAME
	ORDER BY c.TABLE_NAME

para retornar no numero de colunas:

 

select * from F_COLUMNCOUNT('TABELA',default)

Absç

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.