Jump to content

resultado de um campo dependendo da soma de outros


joaquim

Recommended Posts

Bom dia pessoal.

Será que alguém poderia me ajudar a respeito de uma tabela mysql?

è o seguinte: tenho uma tabela voto, nela contem as colunas: id,voto1, voto2,voto3 e resultado. Gostaria que o select somasse os votos e se a maioria fosse "Sim"  a coluna resultado teria o valor "Sim" se não o resultado teria valor "Não".

Desde já agradeço

Link to comment
Share on other sites

1 hora atrás, joaquim disse:

Bom dia pessoal.

Será que alguém poderia me ajudar a respeito de uma tabela mysql?

è o seguinte: tenho uma tabela voto, nela contem as colunas: id,voto1, voto2,voto3 e resultado. Gostaria que o select somasse os votos e se a maioria fosse "Sim"  a coluna resultado teria o valor "Sim" se não o resultado teria valor "Não".

Desde já agradeço

Talvez se possa utilizar o SELECT Count(nome do coluna a  contar). Depois é só comparar se a soma dos sim for maior que os do não , o resultado seria sim e vice-versa 

  • Vote 1
Link to comment
Share on other sites

2 horas atrás, joaquim disse:

Bom dia pessoal.

Será que alguém poderia me ajudar a respeito de uma tabela mysql?

è o seguinte: tenho uma tabela voto, nela contem as colunas: id,voto1, voto2,voto3 e resultado. Gostaria que o select somasse os votos e se a maioria fosse "Sim"  a coluna resultado teria o valor "Sim" se não o resultado teria valor "Não".

Desde já agradeço

Não tenho um MySql (só um MS SQLServer) a mão e assumindo campos em "texto" (algo que não faria), poderia ser algo assim:

(pode ser que consigas tirar ideias para o MySql)

IF OBJECT_ID('tempdb..#VOTOS') IS NOT NULL DROP TABLE #VOTOS;
GO
CREATE TABLE #VOTOS(
	Id INT IDENTITY(1,1),
	voto1 NVARCHAR(3),
	voto2 NVARCHAR(3),
	voto3 NVARCHAR(3)
);
GO
INSERT INTO #VOTOS (voto1, voto2, voto3) 
VALUES
 ('sim', 'sim', 'sim'),
 ('sim', 'sim', 'nao'),
 ('sim', 'nao', 'nao'),
 ('sim', 'nao', 'sim'),
 ('sim', 'sim', 'nao'),
 ('nao', 'nao', 'nao')
GO
SELECT
	CASE WHEN SV1=0 THEN 'nim' WHEN SV1>0 THEN 'sim' ELSE 'nao' END As R1,
	CASE WHEN SV2=0 THEN 'nim' WHEN SV2>0 THEN 'sim' ELSE 'nao' END As R2,
	CASE WHEN SV3=0 THEN 'nim' WHEN SV3>0 THEN 'sim' ELSE 'nao' END As R3
FROM (
	SELECT
		SUM(CASE WHEN voto1='sim' THEN 1 ELSE -1 END) AS SV1,
		SUM(CASE WHEN voto2='sim' THEN 1 ELSE -1 END) AS SV2,
		SUM(CASE WHEN voto3='sim' THEN 1 ELSE -1 END) AS SV3
	FROM #VOTOS
	) AS SVOTOS
RESULTADO:
R1		R2		R3
sim		nim		nao

cps,

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.