Hola a todos,
he aquí mi problema->
Tengo tres tablas:
1.- Distribuidores: Tabla con Distribuidores y Cadenas
2.- Altas: Tabla con altas dedistribuidores
3.- Almacen:Tabla con almacen de distribuidores
Necesito obtener como resultado una tabla con el nombre del distribuidor, el
nombre de la cadena, el número de unidades en almacen y el numero de altas de un
día.
Lo consigo por separado, es decir el número de altas por distribuidor en un día:
Stock en almacen por distribuidor y cadena:
SELECT SUM(ALMACEN.ALMUNIDADES) AS UNIDADES, DISTRIBUIDOR.DISCADENA AS
CADENA, DISTRIBUIDOR.DISNOMBRE AS DISTRIBUIDOR
FROM ALMACEN RIGHT OUTER JOIN
DISTRIBUIDOR ON ALMACEN.ALMDISTRIBUIDOR =
DISTRIBUIDOR.DISNOMBRE AND ALMACEN.ALMCADENA = DISTRIBUIDOR.DISCADENA
GROUP BY DISTRIBUIDOR.DISCADENA, DISTRIBUIDOR.DISNOMBRE
Altas por distribuidor y cadena:
SELECT DISTRIBUIDOR.DISCADENA AS CADENA, DISTRIBUIDOR.DISNOMBRE AS
DISTRIBUIDOR, COUNT(ALTASDETALLE.ALTID) AS ALTAS
FROM DISTRIBUIDOR LEFT OUTER JOIN
ALTASDETALLE ON DISTRIBUIDOR.DISNOMBRE =
ALTASDETALLE.ALTDISTRIBUIDOR AND
DISTRIBUIDOR.DISCADENA = ALTASDETALLE.ALTCADENA
GROUP BY DISTRIBUIDOR.DISCADENA, DISTRIBUIDOR.DISNOMBRE
Pero soy incapaz de varias cosas:
1.º Si intento sacar las altas de un solo día:
SELECT DISTRIBUIDOR.DISCADENA AS CADENA, DISTRIBUIDOR.DISNOMBRE AS
DISTRIBUIDOR, COUNT(ALTASDETALLE.ALTID) AS ALTAS
FROM DISTRIBUIDOR LEFT OUTER JOIN
ALTASDETALLE ON DISTRIBUIDOR.DISNOMBRE =
ALTASDETALLE.ALTDISTRIBUIDOR AND
DISTRIBUIDOR.DISCADENA = ALTASDETALLE.ALTCADENA
WHERE (ALTASDETALLE.ALTFECHA = CONVERT(DATETIME, '15/11/2007', 103))
GROUP BY DISTRIBUIDOR.DISCADENA, DISTRIBUIDOR.DISNOMBRE, ALTASDETALLE.ALTFECHA
en lugar de lo 30 distribuidores que tengo, obtengo solo 11, no me calcula 0
para aquellos que no tienen altas, pero si que me calcula 0 en la selección
anterior sin la condición de fecha!!
2-º Soy incapaz de unir las dos consultas y obtener una tabla con
DISTRIBUIDOR CADENA UNIDADES_ALMACEN ALTAS
algun consejo??
Muchas gracias.
Oscar.
Leer las respuestas