Fórum Select IF Case #56549
17/07/2006
0
por favor, eu tenho a seguinte tabela:
CREATE TABLE teste (
ID INT;
SEMANA CHAR(7)
)
e os seguintes dados:
INSERT INTO teste VALUES (1,´0204000´)
INSERT INTO teste VALUES (2,´0030500´)
minha duvida é:
como eu faço pra saber quais os dias da semana neste campo, sei que posso usar o SUBSTRING para extrair os numeros, mas como mostrar por escrito os dias da semana. Exemplo:
na primeira inserção quero mostrar apenas escrito SEGUNDA E QUARTA, na segunda inserção quero mostrar apenas TERÇA E QUINTA.
obrigado.
Razielra
Curtir tópico
+ 0Posts
19/07/2006
Rodolpho123
Deve ser:
tabelaMestre
--------------
IdTbMestre [b:013e5eb856]integer[/b:013e5eb856]
1
IdSemanaDet: [b:013e5eb856]integer[/b:013e5eb856]
1
Descricao: [b:013e5eb856]varchar[/b:013e5eb856]
´Descrição dos primeiros dias da semana´
tabelaDetalheDiaSemana
----------------
IdSemanaDet: [b:013e5eb856]integer[/b:013e5eb856]
1
Semana: [b:013e5eb856]integer[/b:013e5eb856]
2 (Segunda)
3 (Terça)
E aí, com um [b:013e5eb856]join[/b:013e5eb856] vc resolveria o seu problema
Gostei + 0
21/07/2006
Razielra
quando eu tenho o registro: [0204000] quero que apareça [Segunda, Quarta].
ou quando tenho: [1030007] quero [Domingo, Terça, Sábado]
eu fiz um select case mais ou mesmo assim:
select case substring(tab_aluno.alu_semana from 1 for 1) when 1 then ´Domingo´ end AS dia1, case substring(tab_aluno.alu_semana from 2 for 1) when 2 then ´Segunda´ end AS dia2, case substring(tab_aluno.alu_semana from 3 for 1) when 3 then ´Terça´ end AS dia3, case substring(tab_aluno.alu_semana from 4 for 1) when 4 then ´Quarta´ end AS dia4, case substring(tab_aluno.alu_semana from 5 for 1) when 5 then ´Quinta´ end AS dia5, case substring(tab_aluno.alu_semana from 6 for 1) when 6 then ´Sexta´ end AS dia6, case substring(tab_aluno.alu_semana from 7 for 1) when 7 then ´Sabado´ end AS dia7 from tab_aluno where tab_aluno.alu_tipo = 1
O problema é que eu terei 7 colunas ao inves de apenas 1.
fiz também uma procedure que retorna o mesmo também, mais não ajudou muito, porque naum sei como usa-la direito.
ai valeu pela ajuda. Obrigado.
Gostei + 0
23/07/2006
Rodolpho123
Gostei + 0
23/07/2006
Razielra
Valeu, Obrigado.
Gostei + 0
24/07/2006
Xtreme
select coalesce(case when a.semana like ´¬1¬´ then ´Domingo´ end,´´) || coalesce(case when a.semana like ´¬2¬´ then ´Segunda´ end,´´) || coalesce(case when a.semana like ´¬3¬´ then ´Terça´ end,´´) || coalesce(case when a.semana like ´¬4¬´ then ´Quarta´ end,´´) || coalesce(case when a.semana like ´¬5¬´ then ´Quinta´ end,´´) || coalesce(case when a.semana like ´¬6¬´ then ´Sexta´ end,´´) || coalesce(case when a.semana like ´¬7¬´ then ´Sabado´ end,´´) Data from teste a
Bom testa isso ai! Eu fiz aqui e deu certo o unico problema é que traz muitos espaços juntos, pois a contatenaçao nao aceita campos nulos, é preciso algum valor!
Gostei + 0
13/08/2006
Razielra
bom resolvi faze como nosso amigo ai falo... fiz uma tabela com ´pai´, com os dias da semana e tenho um relacionamento N pra N com outra tabela. e eu queria apresentar mais ou menos as informações desta forma:
id_aluno nome_aluno dias_semama
01 João Segunda, Quarta
02 Maria Terça, Quinta
onde tenho então a tabela ALUNO e a tabela SEMANA, com relacionamento N para N. alguem sabe como resolver isso. se for com o JOIN eu não sei como ele funciona, to tentando aprende para vê se consigo faze.
Obrigado.
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)