consulta

05/12/2006 - 11:30 por Joan Q. | Informe spam
Hola todos/as

A ver si me podéis ayudar que me he quedado en blanco e igual es una
tontería:

Tengo la tabla trabajadores y campos:
- Trabajador
- Fecha paga
- Tipo_paga

Cómo puedo saber los trabajadores que han tenido algún cambio en tipo_paga
en algún momento. Podría hacer un join y having pero no sé hacerlo sin hacer
referencia a fechas concretas y aquí estamos hablando de cualquier fecha.

Gracias

Preguntas similare

Leer las respuestas

#1 Carlos Sacristán
05/12/2006 - 11:56 | Informe spam
Prueba con

SELECT COUNT(DISTINCT tipo_paga) AS pagas, trabajador
FROM trabajadores
GROUP BY trabajador
HAVING COUNT(DISTINCT tipo_paga) > 1


Un saludo

-
"Sólo sé que no sé nada. " (Sócrates)

"Joan Q." escribió en el mensaje
news:
Hola todos/as

A ver si me podéis ayudar que me he quedado en blanco e igual es una
tontería:

Tengo la tabla trabajadores y campos:
- Trabajador
- Fecha paga
- Tipo_paga

Cómo puedo saber los trabajadores que han tenido algún cambio en tipo_paga
en algún momento. Podría hacer un join y having pero no sé hacerlo sin
hacer
referencia a fechas concretas y aquí estamos hablando de cualquier fecha.

Gracias


Respuesta Responder a este mensaje
#2 Joan Q
05/12/2006 - 13:19 | Informe spam
Muchas gracias, Carlos

"Carlos Sacristán" wrote:

Prueba con

SELECT COUNT(DISTINCT tipo_paga) AS pagas, trabajador
FROM trabajadores
GROUP BY trabajador
HAVING COUNT(DISTINCT tipo_paga) > 1


Un saludo

-
"Sólo sé que no sé nada. " (Sócrates)

"Joan Q." escribió en el mensaje
news:
> Hola todos/as
>
> A ver si me podéis ayudar que me he quedado en blanco e igual es una
> tontería:
>
> Tengo la tabla trabajadores y campos:
> - Trabajador
> - Fecha paga
> - Tipo_paga
>
> Cómo puedo saber los trabajadores que han tenido algún cambio en tipo_paga
> en algún momento. Podría hacer un join y having pero no sé hacerlo sin
> hacer
> referencia a fechas concretas y aquí estamos hablando de cualquier fecha.
>
> Gracias
>
>



Respuesta Responder a este mensaje
#3 Carlos Sacristán
05/12/2006 - 15:21 | Informe spam
Mucha mejor solución Alejandro


Un saludo

-
"Sólo sé que no sé nada. " (Sócrates)

"Alejandro Mesa" escribió en el
mensaje news:
Joan Q,

Puedes tratar tambien comparando los valores min y max de la columna
[tipo_paga]. A veces resulta mejor rendimiento porque no se esta contando
o
sumando valor alguno.

select trabajador
from dbo.trabajadores
group by trabajador
having min(fecha_paga) < max(fecha_paga)
go


AMB

"Joan Q" wrote:

Muchas gracias, Carlos

"Carlos Sacristán" wrote:

> Prueba con
>
> SELECT COUNT(DISTINCT tipo_paga) AS pagas, trabajador
> FROM trabajadores
> GROUP BY trabajador
> HAVING COUNT(DISTINCT tipo_paga) > 1
>
>
> Un saludo
>
> -
> "Sólo sé que no sé nada. " (Sócrates)
>
> "Joan Q." escribió en el mensaje
> news:
> > Hola todos/as
> >
> > A ver si me podéis ayudar que me he quedado en blanco e igual es una
> > tontería:
> >
> > Tengo la tabla trabajadores y campos:
> > - Trabajador
> > - Fecha paga
> > - Tipo_paga
> >
> > Cómo puedo saber los trabajadores que han tenido algún cambio en
> > tipo_paga
> > en algún momento. Podría hacer un join y having pero no sé hacerlo
> > sin
> > hacer
> > referencia a fechas concretas y aquí estamos hablando de cualquier
> > fecha.
> >
> > Gracias
> >
> >
>
>
>
Respuesta Responder a este mensaje
#4 Carlos Sacristán
05/12/2006 - 16:28 | Informe spam
Es más eficiente, luego entonces es mejor solución. No te quites
méritos, Alejandro


Un saludo

-
"Sólo sé que no sé nada. " (Sócrates)

"Alejandro Mesa" escribió en el
mensaje news:
Carlos,

Es igual a la que posteastes. Solo otra forma de hacerlo y que en
ocasiones
resulta en mejor rendimiento.

Saludos,

AMB

"Carlos Sacristán" wrote:

Mucha mejor solución Alejandro


Un saludo

-
"Sólo sé que no sé nada. " (Sócrates)

"Alejandro Mesa" escribió en el
mensaje news:
> Joan Q,
>
> Puedes tratar tambien comparando los valores min y max de la columna
> [tipo_paga]. A veces resulta mejor rendimiento porque no se esta
> contando
> o
> sumando valor alguno.
>
> select trabajador
> from dbo.trabajadores
> group by trabajador
> having min(fecha_paga) < max(fecha_paga)
> go
>
>
> AMB
>
> "Joan Q" wrote:
>
>> Muchas gracias, Carlos
>>
>> "Carlos Sacristán" wrote:
>>
>> > Prueba con
>> >
>> > SELECT COUNT(DISTINCT tipo_paga) AS pagas, trabajador
>> > FROM trabajadores
>> > GROUP BY trabajador
>> > HAVING COUNT(DISTINCT tipo_paga) > 1
>> >
>> >
>> > Un saludo
>> >
>> > -
>> > "Sólo sé que no sé nada. " (Sócrates)
>> >
>> > "Joan Q." escribió en el mensaje
>> > news:
>> > > Hola todos/as
>> > >
>> > > A ver si me podéis ayudar que me he quedado en blanco e igual es
>> > > una
>> > > tontería:
>> > >
>> > > Tengo la tabla trabajadores y campos:
>> > > - Trabajador
>> > > - Fecha paga
>> > > - Tipo_paga
>> > >
>> > > Cómo puedo saber los trabajadores que han tenido algún cambio en
>> > > tipo_paga
>> > > en algún momento. Podría hacer un join y having pero no sé hacerlo
>> > > sin
>> > > hacer
>> > > referencia a fechas concretas y aquí estamos hablando de cualquier
>> > > fecha.
>> > >
>> > > Gracias
>> > >
>> > >
>> >
>> >
>> >



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