funcion MAX()

22/11/2004 - 13:41 por Joan Q. | Informe spam
Hola a tod@s,

Igual me he hecho un lío y es una tontería, pero ahora no veo la manera en
un select de sacar el MAX() entre 2 campos diferentes de la misma tabla
Necesito en un select sólo el valor más alto entre t.valor1 y t.valor2

select
t.nombre,
MAX(t.valor 1, t.valor 2)

from trabajadores t


Respuesta: la función max requiere 1 argumentos

Preguntas similare

Leer las respuestas

#6 Joan Q.
22/11/2004 - 15:10 | Informe spam
Muchas gracias Maxi,
Bueno, ya sé bien lo que no puede hacer el max-min()
"Maxi" escribió en el mensaje
news:
ok

quizas entonces esto te ayude

SELECT MAX(CASE WHEN tb.p_tiempoparcial = 0 THEN tb.importe ELSE


tb.importe
* tb.p_tiempoparcial / 100 END ) AS SALARIO from ..

Suerte


Salu2
Maxi


"Joan Q." escribió en el mensaje
news:
> Pues si tb.p_tiempoparcial = 0, sólo necesito el tb.importe sin más
>
> "Maxi" escribió en el mensaje
> news:
>> Hola, pregunta: si vale 0 que haces? lo excluis? decime que logica
>> aplicarias cuando vale 0, porque se puede resolver esto con un simple
> select
>> :)
>>
>>
>> Salu2
>> Maxi
>>
>>
>> "Joan Q." escribió en el mensaje
>> news:
>> > Muchas gracias por responder Maxi,
>> >
>> > Bueno el caso concreto seguro puede resolverse de otra manera, lo que
> pasa
>> > es que quería hacerlo de manera super rápida
>> >
>> >
>> >
>> > Quiero saber el salario de un trabajador, teniendo en cuenta que
>> >
>> >
>> >
>> > tb.importe es el salario absoluto independiente de la jornada
>> >
>> > tb.p_tiempoparcial tiene un valor que indica el porcentaje de jornada
> pero
>> > vale 0 cuando no minimiza (es a tiempo completo) (cosas del que


diseñó
> la
>> > BD)
>> >
>> > salario = tb.importe * tb.p_tiempoparcial / 100 si


tb.p_tiempoparcial
> (si
>> > tb.p_tiempoparcial no vale 0)
>> >
>> >
>> >
>> > Por tanto tb.importe * t.p_tiempoparcial / 100 me dará el importe,


pero
> si
>> > tb.p_tiempoparcial = 0 no sirve. Por esto había pensado qué fácil


saco
> el
>> > MAX entre un valor y otro porqué en un caso siemrpe será 0
>> >
>> >
>> >
>> > select
>> >
>> > t.nombre,
>> >
>> > tb.p_tiempoparcial,
>> >
>> > tb.importe,
>> >
>> > tb.importe * t.p_tiempoparcial / 100
>> >
>> >
>> >
>> > from trabajadores t
>> >
>> >
>> >
>> > inner join trabajadoresconceptoscobro tb
>> >
>> > on t.codigoempresa = tb.codigoempresa
>> >
>> > and t.cod_trabajador = tb.cod_trabajador
>> >
>> >
>> >
>> > group by
>> >
>> > t.nombre,
>> >
>> > t.p_tiempoparcial,
>> >
>> > tb.importe,
>> >
>> > tb.importe * t.p_tiempoparcial /100
>> >
>> >
>> >
>> > order by t.nombre, tb.cod_concepto
>> >
>> >
>> >
>> >
>> >
>> > "Maxi" escribió en el mensaje
>> > news:
>> >> Juan, de esa forma no lo podes hacer, pero veamos!! vos queres sacar
>> >> el
>> >> Maximo valor de entre campos? como es eso?
>> >>
>> >> No te entiendo bien el fin del mismo
>> >>
>> >>
>> >> Salu2
>> >> Maxi
>> >>
>> >>
>> >> "Joan Q." escribió en el mensaje
>> >> news:
>> >> > Hola a ,
>> >> >
>> >> > Igual me he hecho un lío y es una tontería, pero ahora no veo la
> manera
>> > en
>> >> > un select de sacar el MAX() entre 2 campos diferentes de la misma
> tabla
>> >> > Necesito en un select sólo el valor más alto entre t.valor1 y
> t.valor2
>> >> >
>> >> > select
>> >> > t.nombre,
>> >> > MAX(t.valor 1, t.valor 2)
>> >> >
>> >> > from trabajadores t
>> >> >
>> >> >
>> >> > Respuesta: la función max requiere 1 argumentos
>> >> >
>> >> >
>> >>
>> >>
>> >
>> >
>>
>>
>
>


Respuesta Responder a este mensaje
#7 Joan Q.
22/11/2004 - 15:33 | Informe spam
Sólo una cosa Maxi,

¿Puedo de alguna manera utilizar el valor devuelto?
Es que tengo un group by para poder hacer un compute sum (tb.importe *
tb.p_tiempoparcial /100) y claro ahora no va. A no ser que pueda hacer una
especie de max(case... dentro del group by. ¿Cómo?

"Joan Q." escribió en el mensaje
news:
Muchas gracias Maxi,
Bueno, ya sé bien lo que no puede hacer el max-min()
"Maxi" escribió en el mensaje
news:
> ok
>
> quizas entonces esto te ayude
>
> SELECT MAX(CASE WHEN tb.p_tiempoparcial = 0 THEN tb.importe ELSE
tb.importe
> * tb.p_tiempoparcial / 100 END ) AS SALARIO from ..
>
> Suerte
>
>
> Salu2
> Maxi
>
>
> "Joan Q." escribió en el mensaje
> news:
> > Pues si tb.p_tiempoparcial = 0, sólo necesito el tb.importe sin más
> >
> > "Maxi" escribió en el mensaje
> > news:
> >> Hola, pregunta: si vale 0 que haces? lo excluis? decime que logica
> >> aplicarias cuando vale 0, porque se puede resolver esto con un simple
> > select
> >> :)
> >>
> >>
> >> Salu2
> >> Maxi
> >>
> >>
> >> "Joan Q." escribió en el mensaje
> >> news:
> >> > Muchas gracias por responder Maxi,
> >> >
> >> > Bueno el caso concreto seguro puede resolverse de otra manera, lo


que
> > pasa
> >> > es que quería hacerlo de manera super rápida
> >> >
> >> >
> >> >
> >> > Quiero saber el salario de un trabajador, teniendo en cuenta que
> >> >
> >> >
> >> >
> >> > tb.importe es el salario absoluto independiente de la jornada
> >> >
> >> > tb.p_tiempoparcial tiene un valor que indica el porcentaje de


jornada
> > pero
> >> > vale 0 cuando no minimiza (es a tiempo completo) (cosas del que
diseñó
> > la
> >> > BD)
> >> >
> >> > salario = tb.importe * tb.p_tiempoparcial / 100 si
tb.p_tiempoparcial
> > (si
> >> > tb.p_tiempoparcial no vale 0)
> >> >
> >> >
> >> >
> >> > Por tanto tb.importe * t.p_tiempoparcial / 100 me dará el importe,
pero
> > si
> >> > tb.p_tiempoparcial = 0 no sirve. Por esto había pensado qué fácil
saco
> > el
> >> > MAX entre un valor y otro porqué en un caso siemrpe será 0
> >> >
> >> >
> >> >
> >> > select
> >> >
> >> > t.nombre,
> >> >
> >> > tb.p_tiempoparcial,
> >> >
> >> > tb.importe,
> >> >
> >> > tb.importe * t.p_tiempoparcial / 100
> >> >
> >> >
> >> >
> >> > from trabajadores t
> >> >
> >> >
> >> >
> >> > inner join trabajadoresconceptoscobro tb
> >> >
> >> > on t.codigoempresa = tb.codigoempresa
> >> >
> >> > and t.cod_trabajador = tb.cod_trabajador
> >> >
> >> >
> >> >
> >> > group by
> >> >
> >> > t.nombre,
> >> >
> >> > t.p_tiempoparcial,
> >> >
> >> > tb.importe,
> >> >
> >> > tb.importe * t.p_tiempoparcial /100
> >> >
> >> >
> >> >
> >> > order by t.nombre, tb.cod_concepto
> >> >
> >> >
> >> >
> >> >
> >> >
> >> > "Maxi" escribió en el mensaje
> >> > news:
> >> >> Juan, de esa forma no lo podes hacer, pero veamos!! vos queres


sacar
> >> >> el
> >> >> Maximo valor de entre campos? como es eso?
> >> >>
> >> >> No te entiendo bien el fin del mismo
> >> >>
> >> >>
> >> >> Salu2
> >> >> Maxi
> >> >>
> >> >>
> >> >> "Joan Q." escribió en el mensaje
> >> >> news:
> >> >> > Hola a ,
> >> >> >
> >> >> > Igual me he hecho un lío y es una tontería, pero ahora no veo la
> > manera
> >> > en
> >> >> > un select de sacar el MAX() entre 2 campos diferentes de la


misma
> > tabla
> >> >> > Necesito en un select sólo el valor más alto entre t.valor1 y
> > t.valor2
> >> >> >
> >> >> > select
> >> >> > t.nombre,
> >> >> > MAX(t.valor 1, t.valor 2)
> >> >> >
> >> >> > from trabajadores t
> >> >> >
> >> >> >
> >> >> > Respuesta: la función max requiere 1 argumentos
> >> >> >
> >> >> >
> >> >>
> >> >>
> >> >
> >> >
> >>
> >>
> >
> >
>
>


Respuesta Responder a este mensaje
#8 Maxi
22/11/2004 - 15:39 | Informe spam
Hola, a ver, si haces un MAx vas a tener que hacer un Grouo by por otro
lado!!, no entiendo bien a que llamas utilizar el valor del max


Salu2
Maxi


"Joan Q." escribió en el mensaje
news:
Sólo una cosa Maxi,

¿Puedo de alguna manera utilizar el valor devuelto?
Es que tengo un group by para poder hacer un compute sum (tb.importe *
tb.p_tiempoparcial /100) y claro ahora no va. A no ser que pueda hacer una
especie de max(case... dentro del group by. ¿Cómo?

"Joan Q." escribió en el mensaje
news:
Muchas gracias Maxi,
Bueno, ya sé bien lo que no puede hacer el max-min()
"Maxi" escribió en el mensaje
news:
> ok
>
> quizas entonces esto te ayude
>
> SELECT MAX(CASE WHEN tb.p_tiempoparcial = 0 THEN tb.importe ELSE
tb.importe
> * tb.p_tiempoparcial / 100 END ) AS SALARIO from ..
>
> Suerte
>
>
> Salu2
> Maxi
>
>
> "Joan Q." escribió en el mensaje
> news:
> > Pues si tb.p_tiempoparcial = 0, sólo necesito el tb.importe sin más
> >
> > "Maxi" escribió en el mensaje
> > news:
> >> Hola, pregunta: si vale 0 que haces? lo excluis? decime que logica
> >> aplicarias cuando vale 0, porque se puede resolver esto con un
> >> simple
> > select
> >> :)
> >>
> >>
> >> Salu2
> >> Maxi
> >>
> >>
> >> "Joan Q." escribió en el mensaje
> >> news:
> >> > Muchas gracias por responder Maxi,
> >> >
> >> > Bueno el caso concreto seguro puede resolverse de otra manera, lo


que
> > pasa
> >> > es que quería hacerlo de manera super rápida
> >> >
> >> >
> >> >
> >> > Quiero saber el salario de un trabajador, teniendo en cuenta que
> >> >
> >> >
> >> >
> >> > tb.importe es el salario absoluto independiente de la jornada
> >> >
> >> > tb.p_tiempoparcial tiene un valor que indica el porcentaje de


jornada
> > pero
> >> > vale 0 cuando no minimiza (es a tiempo completo) (cosas del que
diseñó
> > la
> >> > BD)
> >> >
> >> > salario = tb.importe * tb.p_tiempoparcial / 100 si
tb.p_tiempoparcial
> > (si
> >> > tb.p_tiempoparcial no vale 0)
> >> >
> >> >
> >> >
> >> > Por tanto tb.importe * t.p_tiempoparcial / 100 me dará el importe,
pero
> > si
> >> > tb.p_tiempoparcial = 0 no sirve. Por esto había pensado qué fácil
saco
> > el
> >> > MAX entre un valor y otro porqué en un caso siemrpe será 0
> >> >
> >> >
> >> >
> >> > select
> >> >
> >> > t.nombre,
> >> >
> >> > tb.p_tiempoparcial,
> >> >
> >> > tb.importe,
> >> >
> >> > tb.importe * t.p_tiempoparcial / 100
> >> >
> >> >
> >> >
> >> > from trabajadores t
> >> >
> >> >
> >> >
> >> > inner join trabajadoresconceptoscobro tb
> >> >
> >> > on t.codigoempresa = tb.codigoempresa
> >> >
> >> > and t.cod_trabajador = tb.cod_trabajador
> >> >
> >> >
> >> >
> >> > group by
> >> >
> >> > t.nombre,
> >> >
> >> > t.p_tiempoparcial,
> >> >
> >> > tb.importe,
> >> >
> >> > tb.importe * t.p_tiempoparcial /100
> >> >
> >> >
> >> >
> >> > order by t.nombre, tb.cod_concepto
> >> >
> >> >
> >> >
> >> >
> >> >
> >> > "Maxi" escribió en el mensaje
> >> > news:
> >> >> Juan, de esa forma no lo podes hacer, pero veamos!! vos queres


sacar
> >> >> el
> >> >> Maximo valor de entre campos? como es eso?
> >> >>
> >> >> No te entiendo bien el fin del mismo
> >> >>
> >> >>
> >> >> Salu2
> >> >> Maxi
> >> >>
> >> >>
> >> >> "Joan Q." escribió en el mensaje
> >> >> news:
> >> >> > Hola a ,
> >> >> >
> >> >> > Igual me he hecho un lío y es una tontería, pero ahora no veo
> >> >> > la
> > manera
> >> > en
> >> >> > un select de sacar el MAX() entre 2 campos diferentes de la


misma
> > tabla
> >> >> > Necesito en un select sólo el valor más alto entre t.valor1 y
> > t.valor2
> >> >> >
> >> >> > select
> >> >> > t.nombre,
> >> >> > MAX(t.valor 1, t.valor 2)
> >> >> >
> >> >> > from trabajadores t
> >> >> >
> >> >> >
> >> >> > Respuesta: la función max requiere 1 argumentos
> >> >> >
> >> >> >
> >> >>
> >> >>
> >> >
> >> >
> >>
> >>
> >
> >
>
>






Respuesta Responder a este mensaje
#9 Joan Q.
22/11/2004 - 15:40 | Informe spam
Perdona Maxi, ya lo he encontrado

compute sum (MAX(CASE WHEN t.p_tiempoparcial = 0 THEN tb.importe ELSE
tb.importe
* t.p_tiempoparcial / 100 END ) ) by t.nombre

Muchas gracias por todo
"Joan Q." escribió en el mensaje
news:
Sólo una cosa Maxi,

¿Puedo de alguna manera utilizar el valor devuelto?
Es que tengo un group by para poder hacer un compute sum (tb.importe *
tb.p_tiempoparcial /100) y claro ahora no va. A no ser que pueda hacer una
especie de max(case... dentro del group by. ¿Cómo?

"Joan Q." escribió en el mensaje
news:
> Muchas gracias Maxi,
> Bueno, ya sé bien lo que no puede hacer el max-min()
> "Maxi" escribió en el mensaje
> news:
> > ok
> >
> > quizas entonces esto te ayude
> >
> > SELECT MAX(CASE WHEN tb.p_tiempoparcial = 0 THEN tb.importe ELSE
> tb.importe
> > * tb.p_tiempoparcial / 100 END ) AS SALARIO from ..
> >
> > Suerte
> >
> >
> > Salu2
> > Maxi
> >
> >
> > "Joan Q." escribió en el mensaje
> > news:
> > > Pues si tb.p_tiempoparcial = 0, sólo necesito el tb.importe sin más
> > >
> > > "Maxi" escribió en el mensaje
> > > news:
> > >> Hola, pregunta: si vale 0 que haces? lo excluis? decime que logica
> > >> aplicarias cuando vale 0, porque se puede resolver esto con un


simple
> > > select
> > >> :)
> > >>
> > >>
> > >> Salu2
> > >> Maxi
> > >>
> > >>
> > >> "Joan Q." escribió en el mensaje
> > >> news:
> > >> > Muchas gracias por responder Maxi,
> > >> >
> > >> > Bueno el caso concreto seguro puede resolverse de otra manera, lo
que
> > > pasa
> > >> > es que quería hacerlo de manera super rápida
> > >> >
> > >> >
> > >> >
> > >> > Quiero saber el salario de un trabajador, teniendo en cuenta que
> > >> >
> > >> >
> > >> >
> > >> > tb.importe es el salario absoluto independiente de la jornada
> > >> >
> > >> > tb.p_tiempoparcial tiene un valor que indica el porcentaje de
jornada
> > > pero
> > >> > vale 0 cuando no minimiza (es a tiempo completo) (cosas del que
> diseñó
> > > la
> > >> > BD)
> > >> >
> > >> > salario = tb.importe * tb.p_tiempoparcial / 100 si
> tb.p_tiempoparcial
> > > (si
> > >> > tb.p_tiempoparcial no vale 0)
> > >> >
> > >> >
> > >> >
> > >> > Por tanto tb.importe * t.p_tiempoparcial / 100 me dará el


importe,
> pero
> > > si
> > >> > tb.p_tiempoparcial = 0 no sirve. Por esto había pensado qué fácil
> saco
> > > el
> > >> > MAX entre un valor y otro porqué en un caso siemrpe será 0
> > >> >
> > >> >
> > >> >
> > >> > select
> > >> >
> > >> > t.nombre,
> > >> >
> > >> > tb.p_tiempoparcial,
> > >> >
> > >> > tb.importe,
> > >> >
> > >> > tb.importe * t.p_tiempoparcial / 100
> > >> >
> > >> >
> > >> >
> > >> > from trabajadores t
> > >> >
> > >> >
> > >> >
> > >> > inner join trabajadoresconceptoscobro tb
> > >> >
> > >> > on t.codigoempresa = tb.codigoempresa
> > >> >
> > >> > and t.cod_trabajador = tb.cod_trabajador
> > >> >
> > >> >
> > >> >
> > >> > group by
> > >> >
> > >> > t.nombre,
> > >> >
> > >> > t.p_tiempoparcial,
> > >> >
> > >> > tb.importe,
> > >> >
> > >> > tb.importe * t.p_tiempoparcial /100
> > >> >
> > >> >
> > >> >
> > >> > order by t.nombre, tb.cod_concepto
> > >> >
> > >> >
> > >> >
> > >> >
> > >> >
> > >> > "Maxi" escribió en el mensaje
> > >> > news:
> > >> >> Juan, de esa forma no lo podes hacer, pero veamos!! vos queres
sacar
> > >> >> el
> > >> >> Maximo valor de entre campos? como es eso?
> > >> >>
> > >> >> No te entiendo bien el fin del mismo
> > >> >>
> > >> >>
> > >> >> Salu2
> > >> >> Maxi
> > >> >>
> > >> >>
> > >> >> "Joan Q." escribió en el mensaje
> > >> >> news:
> > >> >> > Hola a ,
> > >> >> >
> > >> >> > Igual me he hecho un lío y es una tontería, pero ahora no veo


la
> > > manera
> > >> > en
> > >> >> > un select de sacar el MAX() entre 2 campos diferentes de la
misma
> > > tabla
> > >> >> > Necesito en un select sólo el valor más alto entre t.valor1 y
> > > t.valor2
> > >> >> >
> > >> >> > select
> > >> >> > t.nombre,
> > >> >> > MAX(t.valor 1, t.valor 2)
> > >> >> >
> > >> >> > from trabajadores t
> > >> >> >
> > >> >> >
> > >> >> > Respuesta: la función max requiere 1 argumentos
> > >> >> >
> > >> >> >
> > >> >>
> > >> >>
> > >> >
> > >> >
> > >>
> > >>
> > >
> > >
> >
> >
>
>


email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida