Hola, tengo, por ejemplo, la siguiente Tabla llamada tblVentas:
IDVenta (int) (PK)
Fecha (datetime)
en la cual almaceno:
1 19/05/2007
2 19/05/2007
3 20/05/2007
4 20/05/2007
otra tabla llamada tblDetalleVentas
IDVenta (int)(fk)
Descripcion (varchar)
Importe (money)
en la cual se almacena, por ejemplo:
1 Carne 12,00
2 Verdura 2,50
3 Carne 4,55
4 Fiambre 2,35
entonces lo que quiero hacer es saber cuanto (en dinero) vendí de carne,
verdura y fiambre vendí el día 19/05/2007
Lo que hago es:
(select sum(Importe) from tblDetalleVentas where IDVenta in (select IDVenta
from tblVentas where Fecha > @Fecha and Fecha < dateadd(day, 1, @Fecha)) and
Descripcion = 'Carne')
(select sum(Importe) from tblDetalleVentas where IDVenta in (select IDVenta
from tblVentas where Fecha > @Fecha and Fecha < dateadd(day, 1, @Fecha)) and
Descripcion = 'Fiambre')
(select sum(Importe) from tblDetalleVentas where IDVenta in (select IDVenta
from tblVentas where Fecha > @Fecha and Fecha < dateadd(day, 1, @Fecha)) and
Descripcion = 'Verdura')
luego esos valores los pongo en una tabla y los devuelvo a mi aplicacion.
Mi pregunta es si esta bien lo que hago y si hay alguna forma mas eficiente
de hacerlo, ya que para cada consulta tengo que traer gran parte de la tabla
tblVentas. Me imagina que hay una forma de guardar esos datos en una tabla
temporal no?
Gracias y Saludos
Leer las respuestas