Ver Mensaje Individual
  #2 (permalink)  
Antiguo 04/02/2008, 13:25
Avatar de Beakdan
Beakdan
 
Fecha de Ingreso: diciembre-2001
Ubicación: Monterrey, Nuevo León
Mensajes: 433
Antigüedad: 23 años
Puntos: 7
Re: Problema con getdate() utilizando inner join

La función getdate() te devuelve la fecha y hora actuales. Según parece, quieres los datos del día anterior. Y es probable que tu campo FechaVenta contenga la hora también. Por lo tanto deberías consultar en un rango de fechas.
Otras observaciones:
1.- No declares tus variables con doble arroba. La doble arroba esta reservada para variables de sistema.
2.- No conviertas un valor datetime en un campo a un formato de cadena al comparar. Al hacer esto es muy probable que no se utilicen los indices declarados en este campo en caso de existir.
3.- En tus comparaciones o asignaciones de fecha usa el formato ISO.

En tu otra pregunta no noté que convertías al comparar, se me pasó por la prisa.
Pero debería quedar algo así tu código:

Código:
DECLARE @fecha1 DATETIME, @fecha2 DATETIME
set @fecha2 = CONVERT(CHAR(8), GETDATE(), 112)
set @fecha1 = SELECT DATEADD(Y, -1, @fecha2)
SELECT      CONVERT(char(10),VenDet.FechaVenta,101) AS fecha,
            Farmacias.Cod_Farma AS Sucursal,
            ListProdVenDiaria.CodigoInterno AS CodigoInterno,
            CatProductos.Descripcion AS Descripcion,
            SUM(VenDet.Cant_Vend) AS Cantidad
FROM        VenDet
INNER JOIN  ListProdVenDiaria
            ON VenDet.CodigoInt = ListProdVenDiaria.CodigoInterno
INNER JOIN  Farmacias
            ON VenDet.Renglon = Farmacias.Cod_Farma
INNER JOIN  CatProductos
            ON ListProdVenDiaria.CodigoInterno = CatProductos.Codigo
WHERE       VenDet.FechaVenta >= @fecha1
            AND VenDet.FechaVenta < @fecha2
GROUP BY    convert(char(10),VenDet.FechaVenta,101),
            Farmacias.Cod_Farma,
            ListProdVenDiaria.CodigoInterno,
            CatProductos.Descripcion
ORDER BY    fecha, Sucursal, CodigoInterno, Descripcion, Cantidad