Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

Problema con getdate() utilizando inner join

Estas en el tema de Problema con getdate() utilizando inner join en el foro de SQL Server en Foros del Web. Buenos dias , a continuacion les muestro el codigo que estoy usando en esta consulta: declare @@fecha1 datetime -- set @@fecha1 = '2008/02/04' <---- Cuando ...
  #1 (permalink)  
Antiguo 04/02/2008, 10:36
 
Fecha de Ingreso: enero-2008
Mensajes: 23
Antigüedad: 16 años, 3 meses
Puntos: 0
Problema con getdate() utilizando inner join

Buenos dias , a continuacion les muestro el codigo que estoy usando en esta consulta:

declare @@fecha1 datetime
-- set @@fecha1 = '2008/02/04' <---- Cuando utilizo este si me despliega resultados

set @@fecha1 = getdate() --<--- Este es el que debo de usar, pero no despliega resultados.

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 convert(char(10),VenDet.FechaVenta,101) = @@fecha1 - 1

Group by convert(char(10),VenDet.FechaVenta,101), Farmacias.Cod_Farma, ListProdVenDiaria.CodigoInterno, CatProductos.Descripcion

Order by fecha, Sucursal, CodigoInterno, Descripcion, Cantidad


Solo me despliega
Fecha Sucursal CodigoInterno Descripcion Cantidad



Pero solo el nombre de los campos sin el contenido de los registros , esto pasa cuando elijo el getdate().

cuando asigno la fecha mediante ' ' si me muestra la info de los registros y no solo el nombre de los campos.

Espero por favor puedan ayudarme para encontrar en que estoy errando, como quiera buscare por mi cuenta. pero pues de todos modos se les agradece de antemano, que tengan un buen dia
  #2 (permalink)  
Antiguo 04/02/2008, 13:25
Avatar de Beakdan  
Fecha de Ingreso: diciembre-2001
Ubicación: Monterrey, Nuevo León
Mensajes: 433
Antigüedad: 22 años, 4 meses
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
  #3 (permalink)  
Antiguo 04/02/2008, 17:10
 
Fecha de Ingreso: enero-2008
Mensajes: 23
Antigüedad: 16 años, 3 meses
Puntos: 0
Re: Problema con getdate() utilizando inner join

Muchas gracias, de nueva cuenta, en vdd thank very much
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 15:17.