Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   Pedidos con un mes de antiguedad ¿¿¿cómo??? !!!!!!!! (https://www.clubdelphi.com/foros/showthread.php?t=46586)

david_uh 03-08-2007 21:09:08

Pedidos con un mes de antiguedad ¿¿¿cómo??? !!!!!!!!
 
hola foro
tengo un pequeño problema de digamos .. lógica:
tengo una tabla pedidos en la cual tengo estos campos

idvendedor
total
saldo
fechaDeentrega


deseo hallar la suma del total de aquellos pedidos cuya fechaDeEntrega tiene mas de un mes de antiguedad: he estado probando esto:
Código:

Select
  qry_vendedores.vendedor,
  tblpedidos.Saldo,
  tblpedidos.FechaEnt
From
  qry_vendedores Inner Join
  tblpedidos On qry_vendedores.id = tblpedidos.IdVendedor
Group By
  qry_vendedores.vendedor
Having
  tblpedidos.FechaEnt = date(now())-30

y me dice "Incorrect datetime value: '20070773' for column 'FechaEnt' at row 1" luego la cambie por esta añadienod la funcion date al final
Código:

Select
  qry_vendedores.vendedor,
  tblpedidos.Saldo,
  tblpedidos.FechaEnt
From
  qry_vendedores Inner Join
  tblpedidos On qry_vendedores.id = tblpedidos.IdVendedor
Group By
  qry_vendedores.vendedor
Having
  tblpedidos.FechaEnt < date(date(now())-30)

y me dice "Column 'FechaEnt' cannot be null" pero la columna FechaEnt no tiene nulos además en la estructura de la tabla no admite NULL.

agradecere cuqlquier aporte

david_uh 03-08-2007 21:10:15

Me olvidaba estoy trbajando con MySql 5 y delphi & usando ZEos

egostar 03-08-2007 21:14:24

Porque no pruebas con esto:

Código:

tblpedidos.FechaEnt = date(now-30);

tblpedidos.FechaEnt < date(date(now-30)); //Esto no me hace sentido

Salud OS

david_uh 03-08-2007 21:32:33

ok gracias egostar una pregunta más:
[code][Select
qry_vendedores.vendedor,
sum(tblpedidos.Saldo),
tblpedidos.FechaEnt
From
qry_vendedores Inner Join
tblpedidos On qry_vendedores.id = tblpedidos.IdVendedor
where
tblpedidos.FechaEnt < date(date(now()-30))
Group By
qry_vendedores.vendedor/CODE]


no es igual a esto??
Código:

Select
  qry_vendedores.vendedor,
  sum(tblpedidos.Saldo),
  tblpedidos.FechaEnt
From
  qry_vendedores Inner Join
  tblpedidos On qry_vendedores.id = tblpedidos.IdVendedor
Group By
  qry_vendedores.vendedor
Having
  tblpedidos.FechaEnt < date(date(now()-30))


es decir cual es la diferencia entre having y where pues cada uno me da resultados diferentes ala hora de hacer la suma

david_uh 03-08-2007 21:33:18

ok gracias egostar una pregunta más:
Código:

[Select
  qry_vendedores.vendedor,
  sum(tblpedidos.Saldo),
  tblpedidos.FechaEnt
From
  qry_vendedores Inner Join
  tblpedidos On qry_vendedores.id = tblpedidos.IdVendedor
where
  tblpedidos.FechaEnt < date(date(now()-30))
Group By
  qry_vendedores.vendedor


no es igual a esto??
Código:

Select
  qry_vendedores.vendedor,
  sum(tblpedidos.Saldo),
  tblpedidos.FechaEnt
From
  qry_vendedores Inner Join
  tblpedidos On qry_vendedores.id = tblpedidos.IdVendedor
Group By
  qry_vendedores.vendedor
Having
  tblpedidos.FechaEnt < date(date(now()-30))


es decir cual es la diferencia entre having y where pues cada uno me da resultados diferentes ala hora de hacer la suma

radaalvaro 06-08-2007 05:54:30

Diferencia entre HAVING y where
 
Hola...

la diferencia entre el having, y el Where, es que el ambito sobre el cual tienen efecto.

El HAVING, se usa solo cuando existe un group by, y este actua sobre el resultado del group by. por ejemplo

Código:

select sum(qty) from sales group by stor_id having sum(qty)>60
eso muestra las ventas mayores a 60 articulos y esta en el having, por que tomamos filtramos despues de sacar el resultado.

En cambio el where, toma en cuenta los datos antes de hacer cualquier operación, de modo que este ejemplo no se podria hacer con WHERE.

Espero haber podido ayudar.

Saludos.


La franja horaria es GMT +2. Ahora son las 10:46:48.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi