Consulta de count

19/07/2005 - 15:40 por Andromeda | Informe spam
Buen Día,

por favor quisiera saber como se puede obtener el nombre del operador con
respecto al monto total, ya que al añadirle as T1, el mismo no genera el
nombre del operador


ejemplo:

select max(total)as total1 from(select oper_cerrar,count(*) as total from
qctkclie where dfecha_fin between '" & txtfecha_ini.text & "' and '" &
txtfecha_fin.text & "' group by oper_cerrar ) as t1

Muchas gracias...

Preguntas similare

Leer las respuestas

#6 Andromeda
19/07/2005 - 16:20 | Informe spam
Ahora si!!! Manuel, ya funciona.

Mil gracias por tu apoyo.


"Andromeda" escribió en el mensaje
news:
Buen Día,

por favor quisiera saber como se puede obtener el nombre del operador con
respecto al monto total, ya que al añadirle as T1, el mismo no genera el
nombre del operador


ejemplo:

select max(total)as total1 from(select oper_cerrar,count(*) as total from
qctkclie where dfecha_fin between '" & txtfecha_ini.text & "' and '" &
txtfecha_fin.text & "' group by oper_cerrar ) as t1

Muchas gracias...


Respuesta Responder a este mensaje
#7 Manuel Vera
19/07/2005 - 16:23 | Informe spam
Revisa la versión de Alejandro Mesa. Esta es la correcta y está menos
complicada.
Salu2
MV
Respuesta Responder a este mensaje
#8 Andromeda
19/07/2005 - 16:39 | Informe spam
Gracias para ti Alejandro y manuel.


"Andromeda" escribió en el mensaje
news:
Buen Día,

por favor quisiera saber como se puede obtener el nombre del operador con
respecto al monto total, ya que al añadirle as T1, el mismo no genera el
nombre del operador


ejemplo:

select max(total)as total1 from(select oper_cerrar,count(*) as total from
qctkclie where dfecha_fin between '" & txtfecha_ini.text & "' and '" &
txtfecha_fin.text & "' group by oper_cerrar ) as t1

Muchas gracias...


Respuesta Responder a este mensaje
#9 Alejandro Mesa
19/07/2005 - 16:50 | Informe spam
Manuel,

Si analizas bien la sentencia, te daras cuenta que el resultado sera el
mismo que el del query interno, por que ya el resultado esta agrupado por
"oper_cerrar" por lo que el maximo sera igual al valor de count(*) que viene
desde el query interno. Dejame poner un ejemplo:

use northwind
go

select
*
from
(
select
orderid,
count(*) as c1
from
[order details]
group by
orderid
) as a

inner join

(
select
orderid,
max(c1) as max_c1
from
(
select
orderid,
count(*) as c1
from
[order details]
group by
orderid
) as t1
group by
orderid
) as b

on a.orderid = b.orderid

order by
orderid asc

La otra forma de solucionarlo seria usando TOP 1 [WITH TIES] o seleccionando
aquellas filas desde el query interno donde el count(*) sea igual al maximo
de los count(*).

select top 1
orderid,
count(*) as c1
from
[order details]
group by
orderid
order by
count(*) desc


select top 1 with ties
*
from
(
select
orderid,
count(*) as c1
from
[order details]
group by
orderid
) as a
where
c1 = (
select
max(c1)
from
(
select
orderid,
count(*) as c1
from
[order details]
group by
orderid
) as b
)
go


AMB


select max(total) as total1 ,
t1.oper_cerrar
from (select oper_cerrar, count(*) as total
from qctkclie
where dfecha_fin between '" & txtfecha_ini.text &
"' and '" & txtfecha_fin.text & "'
group by oper_cerrar ) as t1
group by t1.oper_cerrar -- > aqui el cambio






"Manuel Vera" wrote:

CIERTO!!!

Prueba con este cambio:

select max(total) as total1 ,
t1.oper_cerrar
from (select oper_cerrar, count(*) as total
from qctkclie
where dfecha_fin between '" & txtfecha_ini.text &
"' and '" & txtfecha_fin.text & "'
group by oper_cerrar ) as t1
group by t1.oper_cerrar -- > aqui el cambio

Salu2
MV

"Andromeda" wrote in message
news:%
> Muchas gracias, manuel por responder
> pero fijate esta dando este error con el código que me das, es el
siguiente
>
> La columna 't1.oper_cerrar' de la lista de selección no es válida, porque
no
> está contenida en una función de agregado y no hay cláusula GROUP BY.
>
>
>
> "Andromeda" escribió en el mensaje
> news:
> > Buen Día,
> >
> > por favor quisiera saber como se puede obtener el nombre del operador
con
> > respecto al monto total, ya que al añadirle as T1, el mismo no genera el
> > nombre del operador
> >
> >
> > ejemplo:
> >
> > select max(total)as total1 from(select oper_cerrar,count(*) as total
from
> > qctkclie where dfecha_fin between '" & txtfecha_ini.text & "' and '" &
> > txtfecha_fin.text & "' group by oper_cerrar ) as t1
> >
> > Muchas gracias...
> >
> >
>
>



Respuesta Responder a este mensaje
#10 Alejandro Mesa
19/07/2005 - 16:52 | Informe spam
Andromeda,

Revisa bien los resultados y si puedes lee el mensaje ligado a la respuesta
de Manuel.


AMB

"Andromeda" wrote:

Ahora si!!! Manuel, ya funciona.

Mil gracias por tu apoyo.


"Andromeda" escribió en el mensaje
news:
> Buen Día,
>
> por favor quisiera saber como se puede obtener el nombre del operador con
> respecto al monto total, ya que al añadirle as T1, el mismo no genera el
> nombre del operador
>
>
> ejemplo:
>
> select max(total)as total1 from(select oper_cerrar,count(*) as total from
> qctkclie where dfecha_fin between '" & txtfecha_ini.text & "' and '" &
> txtfecha_fin.text & "' group by oper_cerrar ) as t1
>
> Muchas gracias...
>
>



Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida