mmmm, pues se me ocurre que con una consulta y un outer join entre Productos y Pedidos-Compra que regrese todos los articulos ordenados por el campo.
A ver, más claro, la acabo de hacer a lo rápido en SQL Server, así que no le prestes mucha atención a las asignaciones innecesarias
Cita: SELECT IdProducto, Famlia, SubFamilia, Descripcion, Unidades, CASE Unidades WHEN 0 THEN CASE WHEN ProdPedido IS NULL
THEN '1 semana' ELSE '24 Hrs' END ELSE 'En Stock' END AS Disponibilidad
FROM (SELECT dbo.Productos.IdProducto, dbo.Productos.Famlia, dbo.Productos.SubFamilia, dbo.Productos.Descripcion, dbo.Productos.Unidades,
dbo.Pedidos_Productos.IdProducto AS ProdPedido, CASE WHEN dbo.Pedidos_Productos.IdProducto IS NULL
THEN '1 semana' ELSE '24 hrs' END AS Disponibilidad
FROM dbo.Pedidos_Productos RIGHT OUTER JOIN
dbo.Productos ON dbo.Pedidos_Productos.IdProducto = dbo.Productos.IdProducto) p
ORDER BY Famlia, SubFamilia, Disponibilidad, Descripcion
¿que BD's usas?