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