Código SQL:
Ver originalTabla ARTICULOS
=====================
CREATE TABLE #articulos(
referencia VARCHAR(100),
descripcion VARCHAR(100)
)
INSERT INTO #articulos VALUES ('REF1', 'DECRIPCION-REF1')
INSERT INTO #articulos VALUES ('REF2', 'DECRIPCION-REF2')
INSERT INTO #articulos VALUES ('REF3', 'DECRIPCION-REF3')
INSERT INTO #articulos VALUES ('REF4', 'DECRIPCION-REF4')
INSERT INTO #articulos VALUES ('REF1B', 'DECRIPCION-REF1B')
INSERT INTO #articulos VALUES ('REF2B', 'DECRIPCION-REF2B')
INSERT INTO #articulos VALUES ('REF3B', 'DECRIPCION-REF3B')
INSERT INTO #articulos VALUES ('REF4B', 'DECRIPCION-REF4B')
Tabla ESTADÍSTICAS
=====================
DROP TABLE #estadisticas
CREATE TABLE #estadisticas
(
referencia VARCHAR(100),
unidades INT,
fecha VARCHAR(100)
)
INSERT INTO #estadisticas VALUES ('REF1', 2 , '01/01/2014')
INSERT INTO #estadisticas VALUES ('REF1', 3 , '10/01/2014')
INSERT INTO #estadisticas VALUES ('REF2', 2 , '16/03/2014')
INSERT INTO #estadisticas VALUES ('REF2', 6 , '21/04/2014')
INSERT INTO #estadisticas VALUES ('REF3', 9 , '06/04/2014')
INSERT INTO #estadisticas VALUES ('REF3', 1 , '12/05/2014')
INSERT INTO #estadisticas VALUES ('REF4', 7 , '21/01/2014')
INSERT INTO #estadisticas VALUES ('REF4', 5 , '10/03/2014')
INSERT INTO #estadisticas VALUES ('REF1B', 2 , '06/05/2014')
INSERT INTO #estadisticas VALUES ('REF2B', 2 , '23/03/2014')
INSERT INTO #estadisticas VALUES ('REF3B', 2 , '17/05/2014')
Tabla ARTICULOS EQUIVALENTES
============================
CREATE TABLE #equivalencias(
referencia1 VARCHAR(100),
referencia2 VARCHAR(100)
)
INSERT INTO #equivalencias VALUES ('REF1','REF1B')
INSERT INTO #equivalencias VALUES ('REF1','REF1C')
INSERT INTO #equivalencias VALUES ('REF2','REF2B')
INSERT INTO #equivalencias VALUES ('REF2','REF2C')
INSERT INTO #equivalencias VALUES ('REF3','REF3B')
INSERT INTO #equivalencias VALUES ('REF3','REF3C')
INSERT INTO #equivalencias VALUES ('REF4','REF4B')
INSERT INTO #equivalencias VALUES ('REF4','REF4C')
SELECT referencia1, SUM(unidades) AS unidades FROM(
SELECT referencia1, isnull(unidades,0) AS unidades FROM #estadisticas AS t1 RIGHT JOIN
(
SELECT referencia1 FROM #equivalencias
UNION
SELECT referencia2 FROM #equivalencias) AS t2 ON (t1.referencia=t2.referencia1)
) AS t3 GROUP BY referencia1
Resultado:
REF1 5
REF1B 2
REF1C 0
REF2 8
REF2B 2
REF2C 0
REF3 10
REF3B 2
REF3C 0
REF4 12
REF4B 0
REF4C 0
Nota: Si filtras por fecha, por ejemplo REF1C que fecha tendria??? la misma que su equivalente???