contar filas en rollup

10/02/2006 - 13:02 por Mauro | Informe spam
Como puedo hacer para contar las filas no agrupadas en el rollup, es decir
todo menos los subtotales, sin la necesidad de hacer una subconsulta.

Preguntas similare

Leer las respuestas

#1 Alejandro Mesa
10/02/2006 - 15:28 | Informe spam
Mauro,

No se puede anidar funciones de grupo, osea, no puedes contar sobre un
"count", "sum", etc. Este tipo de cosas debe hacerse en la aplicacion cliente
o herramienta de reportes que uses, es mucho mas facil.

A veces debes pensar sobre lo que esta fuera de la caja. Ve si esto te sirve
de algo.

use northwind
go

select
a.customerid,
a.[year],
case when b.distinct_years is null then '' else ltrim(b.distinct_years) end
as year_cnt,
order_cnt
from
(
select
customerid,
year(orderdate) as [year],
count(orderid) as order_cnt
from
dbo.orders
group by
customerid,
year(orderdate) with rollup
) as a
left join
(
select
customerid,
count(distinct year(orderdate)) as distinct_years
from
dbo.orders
group by
customerid
) as b
on a.customerid = b.customerid and a.[year] is null
order by
case when a.customerid is null then 1 else 0 end asc,
a.customerid,
case when a.[year] is null then 1 else 0 end asc,
a.[year]
go


AMB

"Mauro" wrote:

Como puedo hacer para contar las filas no agrupadas en el rollup, es decir
todo menos los subtotales, sin la necesidad de hacer una subconsulta.



Respuesta Responder a este mensaje
#2 Mauro
10/02/2006 - 17:08 | Informe spam
entiendo, pero tenia que preguntar por las dudas!
gracias Ale.

"Alejandro Mesa" wrote in message
news:
Mauro,

No se puede anidar funciones de grupo, osea, no puedes contar sobre un
"count", "sum", etc. Este tipo de cosas debe hacerse en la aplicacion


cliente
o herramienta de reportes que uses, es mucho mas facil.

A veces debes pensar sobre lo que esta fuera de la caja. Ve si esto te


sirve
de algo.

use northwind
go

select
a.customerid,
a.[year],
case when b.distinct_years is null then '' else ltrim(b.distinct_years)


end
as year_cnt,
order_cnt
from
(
select
customerid,
year(orderdate) as [year],
count(orderid) as order_cnt
from
dbo.orders
group by
customerid,
year(orderdate) with rollup
) as a
left join
(
select
customerid,
count(distinct year(orderdate)) as distinct_years
from
dbo.orders
group by
customerid
) as b
on a.customerid = b.customerid and a.[year] is null
order by
case when a.customerid is null then 1 else 0 end asc,
a.customerid,
case when a.[year] is null then 1 else 0 end asc,
a.[year]
go


AMB

"Mauro" wrote:

> Como puedo hacer para contar las filas no agrupadas en el rollup, es


decir
> todo menos los subtotales, sin la necesidad de hacer una subconsulta.
>
>
>
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida