count

14/04/2005 - 15:43 por Joan Q. | Informe spam
Hola todos/as

Teniendo un select:

declare @a datetime
declare @z datetime
set @a = '20041201'
set @z = '20041231'

select t.nombre

from trabajadores t

inner join pagastrabajador p
on t.codigoempresa = p.codigoempresa
and t.cod_trabajador = p.cod_trabajador
and p.f_paga between @a and @z

where t.codigoempresa = 716
and p.f_paga between @a and @z
and ((datename (month, t.f_baja ) <> datename(month, @z)) or (t.f_baja is
null))

group by t.nombre
_______________________

Resultado:
- Fulano
-
-
- Mengano

(81 filas afectadas)
_______________________

Lo que quiero es que me salgo el número 81. Como hay duplicados (un
trabajador tiene varias pagas en el mismo mes) he puesto el group by
t.nombre. Pero ahora no puedo hacer un count(*) para que me cuente los
registros sin duplicados.

Joan Q

Preguntas similare

Leer las respuestas

#1 Joan Q.
14/04/2005 - 16:52 | Informe spam
Muchas gracias Alejandro. Desconocía los de las tablas derivadas. La veo muy
útiles
Joan Q


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

Usa el query que creastes como una tabla derivada.

declare @a datetime
declare @z datetime

set @a = '20041201'
set @z = '20041231'

select count(*)
from
(
select
t.nombre
from
trabajadores t
inner join
pagastrabajador p
on t.codigoempresa = p.codigoempresa
and t.cod_trabajador = p.cod_trabajador
where
t.codigoempresa = 716
and p.f_paga between @a and @z
and ((datename (month, t.f_baja ) <> datename(month, @z)) or (t.f_baja is
null))
group by
t.nombre
) as t


AMB


"Joan Q." wrote:

> Hola todos/as
>
> Teniendo un select:
>
> declare @a datetime
> declare @z datetime
> set @a = '20041201'
> set @z = '20041231'
>
> select t.nombre
>
> from trabajadores t
>
> inner join pagastrabajador p
> on t.codigoempresa = p.codigoempresa
> and t.cod_trabajador = p.cod_trabajador
> and p.f_paga between @a and @z
>
> where t.codigoempresa = 716
> and p.f_paga between @a and @z
> and ((datename (month, t.f_baja ) <> datename(month, @z)) or (t.f_baja


is
> null))
>
> group by t.nombre
> _______________________
>
> Resultado:
> - Fulano
> -
> -
> - Mengano
>
> (81 filas afectadas)
> _______________________
>
> Lo que quiero es que me salgo el número 81. Como hay duplicados (un
> trabajador tiene varias pagas en el mismo mes) he puesto el group by
> t.nombre. Pero ahora no puedo hacer un count(*) para que me cuente los
> registros sin duplicados.
>
> Joan Q
>
>
>
>
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida