Cita: Porque no sirve la fecha como valor de concordancia?, porque se crean en el mismo dia, y tiene la misma fecha.
Porque si el mismo día se crearon el cliente 14,15,, 16, 17, 18, y 19, lo que tendrás al cruzar los campos fecha es
Cita: Cliente14 - DatosCliente14
Cliente14 - DatosCliente15
Cliente14 - DatosCliente16
Cliente14 - DatosCliente17
Cliente14 - DatosCliente18
Cliente14 - DatosCliente19
Cliente15 - DatosCliente14
Cliente15 - DatosCliente15
Cliente15 - DatosCliente16
Cliente15 - DatosCliente17
Cliente15 - DatosCliente18
Cliente15 - DatosCliente19
...
... y así hasta llegar al Cliente19
Y esto porque el campo tiene el mismo valor en todos los casos. Es lo que se denomina "
producto cartesiano". Para evitarlo hay que lograr que la relación sea 1:1, o bien replantear la lógica de la consulta, ya que lo que estás pidiendo aquí:
Código sql:
Ver originalSELECT
SUM( pos_loc_tpv.cta ) AS cta,
SUM( pos_loc_cln.total ) AS Total,
COUNT( pos_loc_tpv.vid ) AS Vid,
COUNT( pos_loc_cln.clid ) AS Cliente
FROM pos_loc_cln
INNER JOIN pos_loc_tpv ON pos_loc_tpv.fecha = pos_loc_cln.fch
WHERE pos_loc_cln.fch = '2009-11-09'
AND pos_loc_tpc.dev = '0'
No es lo que dices buscar...
Dos preguntas:
1) Si la tabla que administra los clientes
creados, es
pos_loc_cln, ¿Por qué los datos personales están en
pos_loc_tpv, donde se supone que estarían las ventas.
2) ¿Por qué almacenas dos datos que son calculables por consulta en una tabla primaria como es
pos_loc_cln? No es eficiente y requiere un acceso a disco innecesario...
Yendo al problema, si la venta y la cantidad correspondientes a un día están en una sola tabla, la otra es innecesaria:
Código sql:
Ver originalSELECT
SUM(`TotalVenta`) Venta,
SUM(`TotalProductos`) Productos,
COUNT(*) SumaClientes
FROM
(SELECT
SUM(T.dcta ) AS `TotalVenta`,
SUM(T.dprc) AS `TotalProductos`,
T.clid AS Clientes
FROM pos_loc_tpv T
WHERE T.fecha = '2009-11-09' AND T.dev = '0'
GROUP BY Clientes) T1;
Se requiere que sea una subconsulta para que no cuente dos veces clientes que puedan haber hecho dos compras el mismo día.