SQL - Reports

 
Vista:

Reports

Publicado por Carlos (10 intervenciones) el 04/07/2006 17:13:04
Buenas,

Estoy tratando de realizar una serie de Informes mediante Visual Studio.
Dispongo de dos tablas:
Tabla Calculistas con los campos Codigo y Nombre de los calculistas
Tabla Proyectos con los campos Codigo, Superficie ,Horas y Reforma(es un booleano, en caso de que este a 1, se trata de un proyecto reformado)
En cada Proyecto tengo el codigo de la persona que ha calculado el proyecto, los metros que ha calculado, las horas q ha empleado para hacerlo y si se trata de una reforma de un proyecto anterior.

Saco la superficie total calculada por cada Calculista(Tanto lo repetido como lo no repetido) y deseo sacar la superficie repetida realizada por cada calculista, es decir un sumatorio por cada calculista de todos los proyectos que tengan el campo reforma a 1.

select A1.Nombre_Calculista CALCULISTA,SUM(A2.Superficie) SUPERFICIE_REPETIDA, from Calculistas A1,Proyectos A2 WHERE A2.Cod_Calculista = A1.Cod_Calculista AND A2.Reforma='1' GROUP BY A1.Nombre_Calculista

Con la condicion que pongo en WHERE, le digo que los codigos de ambas tablas sean el mismo, para presentar el nombre del calculista en vez del codigo, y que el campo reforma este a TRUE para solo sumar los proyectos repetidos.

Pero aqui viene mi pregunta, como podria sacar ahora la Superficie Total calculada por cada Calculista? Ya que si añado otro sumatorio tal que SUM(A2.Superficie) donde le pongo la condicion para que haga un sumatorio de todos sin tener en cuenta el campo reforma?

Espero haberme explicado, esto me esta volviendo locoooooo!!!!!!!!!!!!

Muchas gracias!!!!!!!!!!!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Reports

Publicado por Isaías (5072 intervenciones) el 04/07/2006 22:18:38
Puedes hacerlo mediante una subconsulta, ejemplo:

select A1.Nombre_Calculista CALCULISTA,SUM(A2.Superficie) SUPERFICIE_REPETIDA, X.SUPTOTAL
from Calculistas A1 JOIN Proyectos A2 ON A2.Cod_Calculista = A1.Cod_Calculista
JOIN (SELECT Cod_Calculista , SUM(Superficie) AS SUPTOTAL FROM
Proyectos GROUP BY Cod_Calculista ) AS X ON X.Cod_Calculista = A1.Cod_Calculista
WHERE A2.Reforma='1'
GROUP BY A1.Nombre_Calculista,X.SUPTOTAL

Espero y sirva
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Reports

Publicado por Carlos (10 intervenciones) el 05/07/2006 09:04:08
Muchisimas gracias!
Funciona perfectamente!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Reports

Publicado por Isaías (5072 intervenciones) el 05/07/2006 22:45:52
Recomendacion: Utiliza los tipos de campo correctamente, los tipos BIT almacena 1 o 0, evita utilizar CHAR para el Status.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Reports

Publicado por Carlos (10 intervenciones) el 06/07/2006 15:46:45
A vueltas con lo mismo......

Ahora me piden algo que no se por donde cogerlo:

Por un lado tengo una tabla de Arquitectos con los campos Cod_Arquitecto y Nombre_Arquitecto
Por Otro lado tengo una tabla de Proyectos con los campos Expediente, Cod_Arquitecto,
Superficie: metros cuadrados calculados
ProyectoACobrar: es un booleano a 1 cuando es un proyecto a cobrar
Importe: el total a cobrar por el proyecto calculado
EstadoContratacion: que puede tener los valores "contratada" o "perdida"
FechaInicioObra: fecha cuando comienza la obra del proyecto calculado, si EstadoContratacion=contratada

Deseo sacar los siguientes calculos mediante una consulta SQL

ARQUITECTO: Nombre del Arquitecto
Superficie Proyectada: Sumatorio de todas las superficies con ese arquitecto ( sin tener en cuenta el estado de contratacion)
Superficie de Obra: el sumatorio de todas las superficies con ese arquitecto que el estado de contratacion sea contratada
Facturacion: EL sumatorio de los importes en aquellos proyectos donde ProyectoACobrar=TRUE de cada Arquitecto
Devolucion: Cuando un proyecto tiene el estado de contratacion como contratada y se ha cobrado por el,
el importe cobrado pasa a ser devolucion(quiero sacar el sumatorio)

Quiero presentar algo asi:

ARQUITECTO SUP.PROYECTO SUP.OBRA FACTURACION DEVOLUCION

Nombre_Arquitecto

Como le hago para incluir todos estos calculos????????????

Muchas gracias!!!!!!!!!!!!!!!!!!!!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar