Ayuda Sql Server

#1
Saludos Bakunos pues tengo la siguiente duda.

Quiero hacer una consulta por fechas en una tabla con muchos datos, en dicha tabla tengo 3 procesos, en los cuales se hacen muchos registros. por ejemplo:
En el proceso 1 se hacen 500 registros, en el 2 se hacen 1200 registros y en el tercero 700 (los valores son variables), eso se hace en 1 Dia.

El dia se divide en 3 turnos, eso nos daria que el primer turno tiene 900 registros, el segundo 800 y el tercero 700 por asi decirlo.

Lo que tengo duda es como hacer la consulta, ya que si pongo:

Count (Turno), group by turno, me dice que del primer turno tengo 1301, del segundo 1179 y el tercero 1067 por asi decirlo.

Con Count Distinct me dice solo cuantos turnos tengo de cada uno, en este caso 1 turno de cada uno y pues distinct solo, me arroja los turnos 1,2,3.

Lo que quiero saber es cuantos turnos tengo entre las fechas, por ejemplo del 2 de agosto al 16 de agosto, ya que algunos sabados o algunos domingos no se trabaja el segundo o tercer turno, por ejemplo, que tuve 15 primeros turnos, 13 segunos y 10 terceros.

Alguien sabe alguna manera de realizar esta consulta de forma correcta? cualquier ayuda se los agradeceria.
 
#3
Aqui esta una imagen





Lo de abajo es lo que me da de resultado, si le pongo un "group by Turno", me da la informacion separada por turnos, pero no es lo que busco.

Lo que necesito es que me diga cuantos Turnos 1, Turnos 2 y Turnos 3 (o juntos) tengo entre esas fechas, ya sea que tenga 15 primeros turnos, 13 segundos turnos, 11 terceros turnos o lo que tenga.
 

joch_pa

Bovino adolescente
#4
para el total de registros por turno
select
turno, count(turno) as total
from
lotesprocesados
group by
turno
--para saber cuantos turnos 1, 2, 3 por fecha
select
Fecha,
sum([turno 1]) as [turno 1],
sum([turno 2]) as [turno 2],
sum([turno 3]) as [turno 3]

from
(
select distinct
convert(char(10) ,fecha , 103) as Fecha,
case turno
when 1 then 1
else 0
end as [turno 1],
case turno
when 2 then 1
else 0
end as [turno 2],
case turno
when 3 then 1
else 0
end as [turno 3]

from
lotesprocesados
)
A
group by Fecha
-- lo que solicitas
select
sum([turno 1]) as [turno 1],
sum([turno 2]) as [turno 2],
sum([turno 3]) as [turno 3]

from
(
select distinct
convert(char(10) ,fecha , 103) as Fecha,
case turno
when 1 then 1
else 0
end as [turno 1],
case turno
when 2 then 1
else 0
end as [turno 2],
case turno
when 3 then 1
else 0
end as [turno 3]

from
lotesprocesados
)
A

Ya solo falta que tu le pongas el rango de fechas a cada consulta, espero te sirva
 
#5
Joch_Pa.

Carnal, mis respetos, te la rifaste, salio exactamente lo que queria, gracias por la ayuda, por mi parte no me queda mas que seguir leyendo y seguir aprendiendo, una vez mas, muchas gracias.

AlxRex, gracias por tomarte tu tiempo en leer mi problema :vientos:.
 
#6
Joch_Pa.

Carnal, mis respetos, te la rifaste, salio exactamente lo que queria, gracias por la ayuda, por mi parte no me queda mas que seguir leyendo y seguir aprendiendo, una vez mas, muchas gracias.

AlxRex, gracias por tomarte tu tiempo en leer mi problema :vientos:.

Chales !!!!!
El query que hizo Joch_Pa, lo puede hacer un niño de quinder garden.
Amigo Pisto...
de conocimientos de bases de datos no es que te falte mucho...
mi estimao, es que no sabes nada!!!
La mayoria de los programadores piensan que una base de datos es una tablita sencillita.
Amigo Pisto hay que ponerse a estudiar un ratito, imagínese cuando le toquen bases de datos de más de 3000 (tres mil ) tablas, peor aún cuando le toque hacer una query que involucre por lo menos a 50 tablas relacionadas, eso si seria un problema.

P.D. las 3000 tablas no es una jalada, a mi si me ha tocado trabajar con bases de datos de esa cantidad, de hecho solucione un problema de performance de un proceso que tardaba 8 horas en ejecutarse y lo reduje a 8 minutos, solo hacia falta saber un poco de SQL para moder mezclar 150 tablas en forma simultanea.
 
#7
Chales !!!!!
El query que hizo Joch_Pa, lo puede hacer un niño de quinder garden.
Amigo Pisto...
de conocimientos de bases de datos no es que te falte mucho...
mi estimao, es que no sabes nada!!!
La mayoria de los programadores piensan que una base de datos es una tablita sencillita.
Amigo Pisto hay que ponerse a estudiar un ratito, imagínese cuando le toquen bases de datos de más de 3000 (tres mil ) tablas, peor aún cuando le toque hacer una query que involucre por lo menos a 50 tablas relacionadas, eso si seria un problema.

P.D. las 3000 tablas no es una jalada, a mi si me ha tocado trabajar con bases de datos de esa cantidad, de hecho solucione un problema de performance de un proceso que tardaba 8 horas en ejecutarse y lo reduje a 8 minutos, solo hacia falta saber un poco de SQL para moder mezclar 150 tablas en forma simultanea.
Amigo EmanuelleVerde, gracias por presumir tus conocimientos conmigo y por tu apoyo en decirme que me falta un largo camino por recorrer, te comento que apenas llevo 2 meses usando SQL, solo lo uso para crear mis procedures, por lo cual conozco lo básico, me falta practica y continuar leyendo, cosa que no dejare de hacer.
Sobre lo de garden, dudo que puedan hacer una consulta de este tipo, amenos que en el garden enseñen SQL o tomen cursos en otra parte, tenemos que ser realistas, y no, SQL, no es una simple tabla, es un sistema de gestion de base de datos.

Saludos.
 

joch_pa

Bovino adolescente
#8
Pisto me alegra que te haya servido y el agradecimiento que nos das a AlxRex y a un servidor, así como tu deseo por seguir aprendiendo y como sabrás hay muchas formas de hacer algo en concreto, la imaginación es el motor así que siembra para que coseches.

EmanuelleVerde, me alegra que hayas tenido la oportunidad de haber hecho lo que pregonas, y así puedas resolver lo que se te presente, tal ves mi solución si fue muy sencilla, y cualquiera con conocimientos lo hubiera hecho, pero me hubiera gustado saber como lo harías tu y poder aprender de ti no solo sobre celos si no sobre como se debería de haber resuelto este problema, te invito a que nos muestres otra solución y no solo aprende Pisto si no también yo.

Gracias a todos.
 
#9
Amigo EmanuelleVerde, gracias por presumir tus conocimientos conmigo y por tu apoyo en decirme que me falta un largo camino por recorrer, te comento que apenas llevo 2 meses usando SQL, solo lo uso para crear mis procedures, por lo cual conozco lo básico, me falta practica y continuar leyendo, cosa que no dejare de hacer.
Sobre lo de garden, dudo que puedan hacer una consulta de este tipo, amenos que en el garden enseñen SQL o tomen cursos en otra parte, tenemos que ser realistas, y no, SQL, no es una simple tabla, es un sistema de gestion de base de datos.

Saludos.
Amigo Pisto, mejor invite a pistear...jejejeje....
Lo de quinder garden fue mera metáfora..... pero creame que si alguien se lo propone si se puede enseñar a un niño de kinder a hacer consultas sobre una base de datos ¿por que no?

Y recordando un poco SQL no es un sistema de gestión de base de datos, el gestor es Microsoft SQL-Server, SQL o mas precisamente el standar ISO SQL es un conjunto de reglas de como debe o deberia trabajar un gestor de bases de datos.

Saludos....
 
#10
Pisto me alegra que te haya servido y el agradecimiento que nos das a AlxRex y a un servidor, así como tu deseo por seguir aprendiendo y como sabrás hay muchas formas de hacer algo en concreto, la imaginación es el motor así que siembra para que coseches.

EmanuelleVerde, me alegra que hayas tenido la oportunidad de haber hecho lo que pregonas, y así puedas resolver lo que se te presente, tal ves mi solución si fue muy sencilla, y cualquiera con conocimientos lo hubiera hecho, pero me hubiera gustado saber como lo harías tu y poder aprender de ti no solo sobre celos si no sobre como se debería de haber resuelto este problema, te invito a que nos muestres otra solución y no solo aprende Pisto si no también yo.

Gracias a todos.
Chales, mi objetivo no fue menospreciar el trabajo ni la buena voluntad de otros, ni muncho menos presumir mis proesas, pues hay que recordar que en el camino nos vamos a encontrar a cabrones mas cabrones que uno.
En otros post he comentado mis trabajos, mi proesas y las desilusiones que uno como programeitor se lleva despues de arduas horas de trabajo y de como los programadores somos menos preciados por la sociedad, pero eso , es otra estoria.
Saludos.
 

joch_pa

Bovino adolescente
#11
Chales, mi objetivo no fue menospreciar el trabajo ni la buena voluntad de otros, ni muncho menos presumir mis proesas, pues hay que recordar que en el camino nos vamos a encontrar a cabrones mas cabrones que uno.
En otros post he comentado mis trabajos, mi proesas y las desilusiones que uno como programeitor se lleva despues de arduas horas de trabajo y de como los programadores somos menos preciados por la sociedad, pero eso , es otra estoria.
Saludos.
Ok ta bien, dejemos esto hasta aqui, ya vimos que no fue mala leche!!! tienes razón en lo que dices en cuanto uno sufre como programador o DBA, pero siempre hay que sacarle el lado bueno, y solo resta hacer énfasis a que debemos ser constructores no demoledores.

Gracias, y pues cualquier cosa por aqui andamos y en lo que se pueda y se sepa se apoyara.
 
Arriba