FUN?ÃO DENTRO DE UMA CONSULTA SQL

JCM0867 19/07/2014 21:32:06
#439682
Olá pessoal

Seguinte, tem como colocar uma função dentro de uma consulta SQL do SQL Server usando VB net?

Como faria por exemplo:
[Ô]Select Campo1, Campo2, Campo3, [txt-color=#e80000]Funcao(Campo1) as Resultado[/txt-color] From Tabela[Ô]

grato

a amizade é como um circulo e como um circulo nao tem começo nem fim
Machado de Assis
JABA 19/07/2014 22:14:30
#439684
Diga-nos o que você quer fazer com esse campo. Talvez já exista algum comando no próprio BD para o que pretende.
JCM0867 19/07/2014 23:21:08
#439687
tentarei explicar o caso:

tenho uma tabela que além de ter dezenas de campos tem 4 que se chamam AluReligiao, ResfReligiao. FamfReligião e FammReligiao
Essa religião é um código de uma tabela de religiões (RelCodigo e RelDescricao), por ex.

01 Ateu
02 Católico
03 Evangélico
04 Mormon
etc.

eu preciso pegar a Descrição da Religião dos 4 campos (AluReligiao, ResfReligiao. FamfReligiao e FammReligiao)
Digamos que eu tenha um determinado registro com AluReligiao = [ô]02[ô], ResfReligiao = [ô]03[ô], FamfReligião = [ô]04[ô] e FammReligiao = [ô]04[ô]
preciso adicionar 4 campos com as respectivas descrições das religiões, ficaria (Católico, Evangélico, Mormon, Mormon)

Se fosse somente um campo AluReligiao por exemplo, um simples Inner Join com a Tabela de Religiões resolveria, mas são 4 campos distintos.

por isso optei por uma funçãoo para buscar a descrição de cada um:
FuncaoDescReligiao(AluReligiao) as AluDescReligiao
FuncaoDescReligiao(ResfReligiao) as ResfDescReligião
FuncaoDescReligiao(FamfReligiao) as FamfDescReligião
FuncaoDescReligiao(FammReligiao) as FammDescReligião

Se tiver como fazer isso somente usando as funções internas do SQL, gostaria de saber como?

Grato
FFCOUTO 20/07/2014 18:13:50
#439693
Resposta escolhida
Você pode fazer vários INNER JOIN para uma mesma tabela, basta usar um alias.

SELECT Campo1, Campo2, Campo3, r1.RelDescricao AS religiao1, r2.RelDescricao AS religiao2, r3.RelDescricao AS religiao3, r4.RelDescricao AS religiao4
FROM tabela AS t
INNER JOIN Religioes AS r1 ON t1.AluReligiao = r1.RelCodigo
INNER JOIN Religioes AS r2 ON t1.ResfReligiao = r2.RelCodigo
INNER JOIN Religioes AS r3 ON t1.FamfReligião = r3.RelCodigo
INNER JOIN Religioes AS r4 ON t1.FammReligiao = r4.RelCodigo

JCM0867 20/07/2014 19:51:34
#439696
Tu é o cara hen?
Funcionou 100%
Logicamente sabia sobre vários Joins mas não sabia que podia usar uma unica tabela varias vezes dentro de um Select, no caso Religioes
o [ô]AS[ô] não é necessário dentro do From e dentro do Join (INNER JOIN Religioes r1 ON t1.AluReligiao = r1.RelCodigo)

Terei que fazer o mesmo para Grau de parentesco, Instrução e Estado Civil
Alu = Aluno
Famf = Responsável Feminino
Famm = Responsável Masculino
Resf = Responsável Financeiro

Valeu mesmo


[Ô]Nunca se afaste de seus sonhos, pois se eles se forem, você continuara vivendo, mas terá deixado de existir[Ô].
Charles Chaplin
Tópico encerrado , respostas não são mais permitidas