Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   Como unir dos consultas en acces (https://www.clubdelphi.com/foros/showthread.php?t=74396)

Pachlu 16-06-2011 21:09:02

Como unir dos consultas en acces
 
Que tal buenas tardes, soy nuevo en esto de programacion estoy ahciendo una bese de datos en acces, y el problema que tengo es el siguiente tengo una tabla se llama calificacion semanal en este primero almaceno los campos de nombre, periodo (periodo le extraigo el mes )y calificacion (esta es semanal), en esta tabla necesito que sume las 4 calificaciones que tenga en comun el mismo mes, y que sean de la misma persona.

Espero me puedan ayudar

Caral 16-06-2011 21:18:42

Hola
Código SQL [-]
Select sum(Calificacion) as Calificacion from CalificacionSemanal where nombre = :Nom and periodo = :Per
Saludos

oscarac 16-06-2011 21:50:27

Complementando lo que caral dice, seria bueno que te des una visita a la guia de estilos y si puedes coloques las estructras de tus tablas, solo para tener una mejor idea y poder ayudarte :cool:

saludos

fjcg02 16-06-2011 21:59:19

Código SQL [-]
select nombre, month(fecha) as mes, sum(calificacion)
from calificaciones
group by nombre, month(fecha)
Si utilizas el generador de consultas del propio access, no tienes ni que teclearlo, generas la consulta, vas al sql y lo copias.

Saludos

Pachlu 17-06-2011 01:34:56

oscarac gracias por la apreciacion, me he dado una vuelta ala guia de estilos y me queda mas claro como lo debo expresar, de antemano gracias. Ya que como lo comente soy nuevo en esto. ahora tratare de explicarme mas.
tengo una Tabla donde se camptura informacion sobre un departamento de una empresa, esto para evaluar los resultados de desempeño de cada persona.

De esa tabla genere una consulta en la cual intento sumar la calificacion que tendra cada uno de ellos por semana, que es la siguiente
Código SQL [-]
SELECT [Mtto sem].Nombre, Departamento.Id, [Mtto sem].[Tarjetas Rojas], [Mtto sem].[Observaciones seguridad], [Mtto sem].[Perido a Evaluar], [Mtto sem].[Platica de Seguridad], DatePart("ww",[Perido a Evaluar],2,2) AS SEMANA, ((([Tarjetas Rojas]+[Observaciones seguridad]+IIf(IsNull([Platica de Seguridad]),1,[Platica de Seguridad]))*100)/3) AS Calificacion, DatePart("m",[Perido a Evaluar]) AS Mes
FROM (Personal INNER JOIN [Mtto sem] ON Personal.Nombre = [Mtto sem].Nombre) INNER JOIN Departamento ON Personal.Departamento = Departamento.Id
GROUP BY [Mtto sem].Nombre, Departamento.Id, [Mtto sem].[Tarjetas Rojas], [Mtto sem].[Observaciones seguridad], [Mtto sem].[Perido a Evaluar], [Mtto sem].[Platica de Seguridad], DatePart("ww",[Perido a Evaluar],2,2), ((([Tarjetas Rojas]+[Observaciones seguridad]+IIf(IsNull([Platica de Seguridad]),1,[Platica de Seguridad]))*100)/3), DatePart("m",[Perido a Evaluar]);

Ahora lo que necesito que haga es que todas las calificaciones que se tengan en un mes(esto lo obtengo de DatePart("m",[Perido a Evaluar]) AS Mes) una misma persona las sume, seria algo asi:

nombre mes calificacion

pedro 1 90
juan 1 50
pedro 1 80

como pedro tiene dos meses uno, deberia promediar las calificaciones, lo que para mi es promedio de renglones, pero no se como hacerlo, si es en esta consulta en otra o como??,

de antemano agradezco su tiempo
Espero explicarme.

oscarac 17-06-2011 06:03:22

Trata de usar de mejor forma los Tags

coloca algo de la estructura de la tabla, para saber que campos utilizas...

Pachlu 17-06-2011 16:11:40

si en efecto estoy utilizando access, veamos si ya se alcanza a ver bien.
Código SQL [-]
SELECT [Mtto sem].Nombre, Departamento.Id, [Mtto sem].[Tarjetas Rojas], [Mtto sem].[Observaciones seguridad], [Mtto sem].[Perido a Evaluar],
 [Mtto sem].[Platica de Seguridad], DatePart("ww",[Perido a Evaluar],2,2) AS SEMANA,
 ((([Tarjetas Rojas]+[Observaciones seguridad]+IIf(IsNull([Platica de Seguridad]),1,[Platica de Seguridad]))*100)/3) AS Calificacion, DatePart("m",[Perido a Evaluar]) AS Mes
FROM (Personal INNER JOIN [Mtto sem] ON Personal.Nombre = [Mtto sem].Nombre) INNER JOIN Departamento ON Personal.Departamento = Departamento.Id
GROUP BY [Mtto sem].Nombre, Departamento.Id, [Mtto sem].[Tarjetas Rojas], [Mtto sem].[Observaciones seguridad], [Mtto sem].[Perido a Evaluar],
 [Mtto sem].[Platica de Seguridad],
 DatePart("ww",[Perido a Evaluar],2,2), ((([Tarjetas Rojas]+[Observaciones seguridad]+IIf(IsNull([Platica de Seguridad]),1,[Platica de Seguridad]))*100)/3), DatePart("m",[Perido a Evaluar]);

Te comento que lo que hace hasta ahi, es sumar los campos y lo divide y obtengo una calificacion por semana, ahora lo que necesito es:
Por ejemplo si Juan nadie tuvo 4 calificaciones en un mes, es decir una por semana, que las identifique por el campo mes y que las vaya sumando, y necesitop que lo haga asi ya que cuando tenga estas 4 calificaciones las debo sumar con otra tabla de calificaciones mensual.

De antemano muchas gracias por tu ayuda


La franja horaria es GMT +2. Ahora son las 18:00:58.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi