Order By em 2 colunas
Meus amigos, meu primeiro tópica.
Gostaria de sanar uma dúvida.
possuo esse script :
SELECT usu.cd_usuario,
p.cd_tip_presta,
tip.nm_tip_presta
FROM dbasgu.usuarios usu,
prestador p,
tip_presta tip
WHERE p.cd_prestador = usu.cd_prestador
AND tip.cd_tip_presta = p.cd_tip_presta
AND usu.sn_ativo = ''''S''''
AND tip.cd_tip_presta IN ( 4, 5, 6, 8,
9, 10, 14 )
ORDER BY 3
Se trata de um select em um cadastro de prestados em um sistema hospitalar.
Neste , tip.cd_tip_presta possuo = ENFERMEIROS, MÉDICOS, TECNICOS DE ENFERMAGEM, NUTRICIONISTAS.....
e cd_usuario, são os logins do prestados no sistema.
Minha dúvida.
Se ordeno pela coluna nm_tip_presta, eu não consigo tratar a coluna por ondem de importância, oque estou tentando dizer é :
Eu preciso de um select onde eu orden a coluna cd_usuário e a coluna "nm_tip_presta" por ordem de importancia.
da forma que postei ai, se ordeno pela coluna 3 (nm_tip_presta), a primeira informação vem ENFERMEIRO e se eu por desc retorna TÉCNICO DE ENFERMAGEM..
Queria ordenar a coluna cd_usuário e também a coluna nm_tip_presta por importancia : médico, enfermeiro, nutricionista, fono.....
Alguém tem alguma ideia ??
ps : Uso SQLTools
Gostaria de sanar uma dúvida.
possuo esse script :
SELECT usu.cd_usuario,
p.cd_tip_presta,
tip.nm_tip_presta
FROM dbasgu.usuarios usu,
prestador p,
tip_presta tip
WHERE p.cd_prestador = usu.cd_prestador
AND tip.cd_tip_presta = p.cd_tip_presta
AND usu.sn_ativo = ''''S''''
AND tip.cd_tip_presta IN ( 4, 5, 6, 8,
9, 10, 14 )
ORDER BY 3
Se trata de um select em um cadastro de prestados em um sistema hospitalar.
Neste , tip.cd_tip_presta possuo = ENFERMEIROS, MÉDICOS, TECNICOS DE ENFERMAGEM, NUTRICIONISTAS.....
e cd_usuario, são os logins do prestados no sistema.
Minha dúvida.
Se ordeno pela coluna nm_tip_presta, eu não consigo tratar a coluna por ondem de importância, oque estou tentando dizer é :
Eu preciso de um select onde eu orden a coluna cd_usuário e a coluna "nm_tip_presta" por ordem de importancia.
da forma que postei ai, se ordeno pela coluna 3 (nm_tip_presta), a primeira informação vem ENFERMEIRO e se eu por desc retorna TÉCNICO DE ENFERMAGEM..
Queria ordenar a coluna cd_usuário e também a coluna nm_tip_presta por importancia : médico, enfermeiro, nutricionista, fono.....
Alguém tem alguma ideia ??
ps : Uso SQLTools
Pedro Costa
Curtidas 0
Respostas
Pedro Costa
11/04/2020
Meus amigos, meu primeiro tópica.
Gostaria de sanar uma dúvida.
possuo esse script :
SELECT usu.cd_usuario,
p.cd_tip_presta,
tip.nm_tip_presta
FROM dbasgu.usuarios usu,
prestador p,
tip_presta tip
WHERE p.cd_prestador = usu.cd_prestador
AND tip.cd_tip_presta = p.cd_tip_presta
AND usu.sn_ativo = ''''S''''
AND tip.cd_tip_presta IN ( 4, 5, 6, 8,
9, 10, 14 )
ORDER BY 3
Se trata de um select em um cadastro de prestados em um sistema hospitalar.
Neste , tip.cd_tip_presta possuo = ENFERMEIROS, MÉDICOS, TECNICOS DE ENFERMAGEM, NUTRICIONISTAS.....
e cd_usuario, são os logins do prestados no sistema.
Minha dúvida.
Se ordeno pela coluna nm_tip_presta, eu não consigo tratar a coluna por ondem de importância, oque estou tentando dizer é :
Eu preciso de um select onde eu orden a coluna cd_usuário e a coluna "nm_tip_presta" por ordem de importancia.
da forma que postei ai, se ordeno pela coluna 3 (nm_tip_presta), a primeira informação vem ENFERMEIRO e se eu por desc retorna TÉCNICO DE ENFERMAGEM..
Queria ordenar a coluna cd_usuário e também a coluna nm_tip_presta por importancia : médico, enfermeiro, nutricionista, fono.....
Alguém tem alguma ideia ??
ps : Uso SQLTools
Gostaria de sanar uma dúvida.
possuo esse script :
SELECT usu.cd_usuario,
p.cd_tip_presta,
tip.nm_tip_presta
FROM dbasgu.usuarios usu,
prestador p,
tip_presta tip
WHERE p.cd_prestador = usu.cd_prestador
AND tip.cd_tip_presta = p.cd_tip_presta
AND usu.sn_ativo = ''''S''''
AND tip.cd_tip_presta IN ( 4, 5, 6, 8,
9, 10, 14 )
ORDER BY 3
Se trata de um select em um cadastro de prestados em um sistema hospitalar.
Neste , tip.cd_tip_presta possuo = ENFERMEIROS, MÉDICOS, TECNICOS DE ENFERMAGEM, NUTRICIONISTAS.....
e cd_usuario, são os logins do prestados no sistema.
Minha dúvida.
Se ordeno pela coluna nm_tip_presta, eu não consigo tratar a coluna por ondem de importância, oque estou tentando dizer é :
Eu preciso de um select onde eu orden a coluna cd_usuário e a coluna "nm_tip_presta" por ordem de importancia.
da forma que postei ai, se ordeno pela coluna 3 (nm_tip_presta), a primeira informação vem ENFERMEIRO e se eu por desc retorna TÉCNICO DE ENFERMAGEM..
Queria ordenar a coluna cd_usuário e também a coluna nm_tip_presta por importancia : médico, enfermeiro, nutricionista, fono.....
Alguém tem alguma ideia ??
ps : Uso SQLTools
Faço um ORDER BY CASE tip.nm_tip_presta WHEN 'MEDICO' THEN usu.cd_usuario end
assim, ele ordena a coluna de login, com a coluna dos prestadores, no caso médico.
porém, quando acabar os "medicos", bagunça tudo novamente nas colunas, sai tudo de ordem.
Queria após ordenar os médicos, ordenar os enfermeiros..
GOSTEI 0
Emerson Nascimento
11/04/2020
não sei se entendi o que você precisa...
veja se é isto:
ou seja, você monta a ordenação conforme a importância que você dá para cada nm_tip_presta (não use cd_usuario, use uma constante, como exemplificado).
veja se é isto:
SELECT usu.cd_usuario, p.cd_tip_presta, tip.nm_tip_presta FROM dbasgu.usuarios usu, INNER JOIN prestador p on p.cd_prestador = usu.cd_prestador INNER JOIN tip_presta tip on tip.cd_tip_presta = p.cd_tip_presta WHERE usu.sn_ativo = 'S' AND tip.cd_tip_presta IN ( 4, 5, 6, 8, 9, 10, 14 ) ORDER BY (CASE tip.nm_tip_presta WHEN 'MEDICO' THEN 1 WHEN 'NUTRICIONISTA' THEN 2 WHEN 'ENFERMEIRO' THEN 3 ELSE 4 END)
ou seja, você monta a ordenação conforme a importância que você dá para cada nm_tip_presta (não use cd_usuario, use uma constante, como exemplificado).
GOSTEI 0
Pedro Costa
11/04/2020
não sei se entendi o que você precisa...
veja se é isto:
ou seja, você monta a ordenação conforme a importância que você dá para cada nm_tip_presta (não use cd_usuario, use uma constante, como exemplificado).
veja se é isto:
SELECT usu.cd_usuario, p.cd_tip_presta, tip.nm_tip_presta FROM dbasgu.usuarios usu, INNER JOIN prestador p on p.cd_prestador = usu.cd_prestador INNER JOIN tip_presta tip on tip.cd_tip_presta = p.cd_tip_presta WHERE usu.sn_ativo = 'S' AND tip.cd_tip_presta IN ( 4, 5, 6, 8, 9, 10, 14 ) ORDER BY (CASE tip.nm_tip_presta WHEN 'MEDICO' THEN 1 WHEN 'NUTRICIONISTA' THEN 2 WHEN 'ENFERMEIRO' THEN 3 ELSE 4 END)
ou seja, você monta a ordenação conforme a importância que você dá para cada nm_tip_presta (não use cd_usuario, use uma constante, como exemplificado).
Obrigado pelo seu retorno.
Assim, ficou boa sua ideia, mas eu precisa mesmo ordenar tbm a coluna cd_usuario , é pra estudo, entende ??
eu preciso ordenar a linha médico e agrupar em ordem alfabetica os logins (cd_usuario).
Quando encerrar médico, começar enfermeiro tbm com logins em ordem alfabética ..
é mais pra conhecimento isso... o select em sí já ta pronto, exporto e faço oque quero no excel......
GOSTEI 0
Pedro Costa
11/04/2020
não sei se entendi o que você precisa...
veja se é isto:
ou seja, você monta a ordenação conforme a importância que você dá para cada nm_tip_presta (não use cd_usuario, use uma constante, como exemplificado).
veja se é isto:
SELECT usu.cd_usuario, p.cd_tip_presta, tip.nm_tip_presta FROM dbasgu.usuarios usu, INNER JOIN prestador p on p.cd_prestador = usu.cd_prestador INNER JOIN tip_presta tip on tip.cd_tip_presta = p.cd_tip_presta WHERE usu.sn_ativo = 'S' AND tip.cd_tip_presta IN ( 4, 5, 6, 8, 9, 10, 14 ) ORDER BY (CASE tip.nm_tip_presta WHEN 'MEDICO' THEN 1 WHEN 'NUTRICIONISTA' THEN 2 WHEN 'ENFERMEIRO' THEN 3 ELSE 4 END)
ou seja, você monta a ordenação conforme a importância que você dá para cada nm_tip_presta (não use cd_usuario, use uma constante, como exemplificado).
Obrigado pelo seu retorno.
Assim, ficou boa sua ideia, mas eu precisa mesmo ordenar tbm a coluna cd_usuario , é pra estudo, entende ??
eu preciso ordenar a linha médico e agrupar em ordem alfabetica os logins (cd_usuario).
Quando encerrar médico, começar enfermeiro tbm com logins em ordem alfabética ..
é mais pra conhecimento isso... o select em sí já ta pronto, exporto e faço oque quero no excel......
RESOLVIDO :
SELECT CASE t.nm_tip_presta
WHEN 'MEDICO' THEN 1
WHEN 'ENFERMEIRO' THEN 2
WHEN 'FISIOTERAPIA' THEN 3
WHEN 'NUTRICIONISTA' THEN 4
WHEN 'FONOAUDIOLOGIA' THEN 5
WHEN 'PSICOLOGO' THEN 6
WHEN 'TECNICO EM ENFERMAGEM' THEN 7
END TAG,
usu.cd_usuario,
t.nm_tip_presta
FROM dbasgu.usuarios usu,
prestador p,
tip_presta t
WHERE p.cd_prestador = usu.cd_prestador
AND t.cd_tip_presta = p.cd_tip_presta
AND usu.sn_ativo = 'S'
AND t.cd_tip_presta IN ( 8, 4, 5, 6,
9, 10, 14 )
ORDER BY 1,
3,
2
GOSTEI 0
Emerson Nascimento
11/04/2020
sugestão: evite utilizar o índice do campo.
utilize o próprio campo. assim você pode alterar a query à vontade, sem precisar se preocupar se a ordenação via continuar funcionando caso você altere a ordem dos campos da SELECT.
utilize o próprio campo. assim você pode alterar a query à vontade, sem precisar se preocupar se a ordenação via continuar funcionando caso você altere a ordem dos campos da SELECT.
SELECT CASE t.nm_tip_presta WHEN 'MEDICO' THEN 1 WHEN 'ENFERMEIRO' THEN 2 WHEN 'FISIOTERAPIA' THEN 3 WHEN 'NUTRICIONISTA' THEN 4 WHEN 'FONOAUDIOLOGIA' THEN 5 WHEN 'PSICOLOGO' THEN 6 WHEN 'TECNICO EM ENFERMAGEM' THEN 7 END TAG, usu.cd_usuario, t.nm_tip_presta FROM dbasgu.usuarios usu, prestador p, tip_presta t WHERE p.cd_prestador = usu.cd_prestador AND t.cd_tip_presta = p.cd_tip_presta AND usu.sn_ativo = 'S' AND t.cd_tip_presta IN ( 8, 4, 5, 6, 9, 10, 14 ) ORDER BY CASE t.nm_tip_presta WHEN 'MEDICO' THEN 1 WHEN 'ENFERMEIRO' THEN 2 WHEN 'FISIOTERAPIA' THEN 3 WHEN 'NUTRICIONISTA' THEN 4 WHEN 'FONOAUDIOLOGIA' THEN 5 WHEN 'PSICOLOGO' THEN 6 WHEN 'TECNICO EM ENFERMAGEM' THEN 7 END, t.nm_tip_presta, usu.cd_usuario
GOSTEI 0