SIMPLIFICAR STRING MYSQL
Boa tarde.
Imagine a SQL
Eu peguei porcent da tabela valores e chamei de [Ô]porcentual[Ô]
Daà usei este porcentual para fazer um cálculo e chamei de [Ô]valor[Ô]
Pergunto: Existe alguma forma de fazer assim como abaixo?
Uso o MySQL. Quando faço assim, me retorna um erro dizendo que o campo [Ô]porcentual[Ô] não existe. Isso eu já sabia que ia ocorrer. Mas gostaria de saber se não tem como simplificar.
Essa string é só um exemplo. A minha string que estou usando no meu projeto tem várias linhas que nem cabem no monitor
Então se existir uma forma de simplificar como no exemplo, seria ótimo.
Obrigado!
Imagine a SQL
SELECT codigo,nome,salario
(SELECT porcent FROM tbl_valores WHERE codigo = 1) as porcentual,
(salario * (SELECT porcent FROM tbl_valores WHERE codigo = 1)) as valor
FROM.....
Eu peguei porcent da tabela valores e chamei de [Ô]porcentual[Ô]
Daà usei este porcentual para fazer um cálculo e chamei de [Ô]valor[Ô]
Pergunto: Existe alguma forma de fazer assim como abaixo?
SELECT codigo,nome,salario,
(SELECT porcent FROM tbl_valores WHERE codigo = 1) as porcentual,
(salario * porcentual) as valor
FROM.....
Uso o MySQL. Quando faço assim, me retorna um erro dizendo que o campo [Ô]porcentual[Ô] não existe. Isso eu já sabia que ia ocorrer. Mas gostaria de saber se não tem como simplificar.
Essa string é só um exemplo. A minha string que estou usando no meu projeto tem várias linhas que nem cabem no monitor

Então se existir uma forma de simplificar como no exemplo, seria ótimo.
Obrigado!
Explique melhor o que você precisa, talvez existam formas melhores de solucionar o mesmo problema. À principio, tente o seguinte:
SELECT codigo,nome,salario,
(SELECT porcent FROM tbl_valores WHERE codigo = 1) as porcentual,
(salario * porcentual[txt-color=#e80000].porcent[/txt-color]) as valor
FROM.....
Desta forma não dá, pois [Ô]porcentual[Ô] é um campo e não uma tabela.
O que eu preciso é simplificar a string SQL.
No exemplo, usei:
O meu projeto funciona, mas a string SQL ficou muito grande porque preciso fazer coisas assim várias vezes na mesma string. Então pensei que se existisse uma forma de simplificar, seria mais fácil de visualizar e manter o código.
O que eu preciso é simplificar a string SQL.
No exemplo, usei:
(SELECT porcent FROM tbl_valores WHERE codigo = 1) as porcentual [ô]---> é uma coluna que mostra os porcentuais
(salario * (SELECT porcent FROM tbl_valores WHERE codigo = 1)) as valor [ô]--> é uma coluna que mostra o valor do salário * porcentual (acima).
[ô]a ideia seria substituir o select de:
(salario * (SELECT porcent FROM tbl_valores WHERE codigo = 1)) as valor
[ô]por uma variável que já receberia o porcentual, para deixar a string mais curta.
O meu projeto funciona, mas a string SQL ficou muito grande porque preciso fazer coisas assim várias vezes na mesma string. Então pensei que se existisse uma forma de simplificar, seria mais fácil de visualizar e manter o código.
E qual é o erro que deu no exemplo que te passei?
(salario * porcentual.porcent) as valor
Este seu exemplo serviria se porcentual fosse uma tabela [tabela.campo]
Veja que no meu exemplo, porcentual é uma coluna.
[Ô]porcentual[Ô] é uma tabela em memória. Você chegou a testar o que te passei?
Testei sim. Pelo menos no MySQL, que é o que uso, diz que a tabela.campo não existem.
Mas é o que estou te falando, veja:
Se fosse substituir, seria:
[Ô]porcentual[Ô] e [Ô]valor[Ô] são campos, não tabelas.
Mas é o que estou te falando, veja:
SELECT codigo,nome,salario,(SELECT porcent FROM tbl_valores WHERE codigo = 1) as porcentual,(salario * porcentual.porcent) as valor
FROM.....
Se fosse substituir, seria:
SELECT codigo,nome,salario,porcentual, valor
FROM.....
[Ô]porcentual[Ô] e [Ô]valor[Ô] são campos, não tabelas.
Tópico encerrado , respostas não são mais permitidas