Tengo este select:
Código SQL:
Ver original
SELECT Entrega.Referencia, COUNT(*) AS 'Entregadas' FROM (SELECT TEF.nombre AS Referencia FROM pieza_datamatrix AS PDM [B]LEFT JOIN[/B] det_contenedores AS DC ON DC.N_Serie=PDM.id LEFT JOIN tipo_elemento_fabricacion AS TEF ON TEF.id=PDM.idTipo GROUP BY TEF.id, DC.N_Serie) AS Entrega GROUP BY Entrega.Referencia UNION SELECT Entrega.Referencia, COUNT(*) AS 'Entregadas' FROM (SELECT TEF.nombre AS Referencia FROM ff_pieza_datamatrix AS PDM2 [B]LEFT JOIN[/B] ff_det_contenedores AS DC2 ON DC2.N_Serie=PDM2.id LEFT JOIN tipo_elemento_fabricacion AS TEF ON TEF.id=PDM2.idTipo GROUP BY TEF.id, DC2.N_Serie) AS Entrega GROUP BY Entrega.Referencia
el resultado es:
Cita:
Sin embargo si hago la consulta quitando el primer left join de las consultas, tal que asi:00675283 1
04123158 33
04123412 37
04132010 1474
04133081 1
04133947 5
04133982 1
04123158 33
04123412 37
04132010 1474
04133081 1
04133947 5
04133982 1
Código SQL:
Ver original
SELECT Entrega.Referencia, COUNT(*) AS 'Entregadas' FROM (SELECT TEF.nombre AS Referencia FROM pieza_datamatrix AS PDM [B]JOIN [/B]det_contenedores AS DC ON DC.N_Serie=PDM.id LEFT JOIN tipo_elemento_fabricacion AS TEF ON TEF.id=PDM.idTipo GROUP BY TEF.id, DC.N_Serie) AS Entrega GROUP BY Entrega.Referencia UNION SELECT Entrega.Referencia, COUNT(*) AS 'Entregadas' FROM (SELECT TEF.nombre AS Referencia FROM ff_pieza_datamatrix AS PDM2 [B]JOIN [/B]ff_det_contenedores AS DC2 ON DC2.N_Serie=PDM2.id LEFT JOIN tipo_elemento_fabricacion AS TEF ON TEF.id=PDM2.idTipo GROUP BY TEF.id, DC2.N_Serie) AS Entrega GROUP BY Entrega.Referencia
el resultado es correcto y sale asi:
Código:
Con la primera consulta CASI SIEMPRE salen todos los resultados con un +1 (incluyendo los registros que no deberian salir que salen con un =1)04123158 32 04123412 36 04132010 1473 04133947 5 04293426 2323 04510155 16
porque siempre saca un +1 mas al valor que debería??