Código SQL:
Ver originalCREATE TABLE #paletas
(
id INT,
sabor VARCHAR(20),
fechaexpiracion INT
)
INSERT INTO #paletas VALUES (1,'fresa',2014)
INSERT INTO #paletas VALUES (2,'Piña',2013)
INSERT INTO #paletas VALUES (3,'Sandia',2015)
CREATE TABLE #tipo_premio
(
id INT,
sabor VARCHAR(20),
tipo_premio VARCHAR(20)
)
--|id-|Sabor-|tipo-Premio|
INSERT INTO #tipo_premio VALUES (1,'fresa','A1')
INSERT INTO #tipo_premio VALUES (2,'fresa','A2')
INSERT INTO #tipo_premio VALUES (3,'fresa','A3')
INSERT INTO #tipo_premio VALUES (4,'fresa','A4')
INSERT INTO #tipo_premio VALUES (5,'fresa','A5')
INSERT INTO #tipo_premio VALUES (5,'fresa','A5')
INSERT INTO #tipo_premio VALUES (5,'fresa','A5')
INSERT INTO #tipo_premio VALUES (5,'fresa','A5')
INSERT INTO #tipo_premio VALUES (6,'fresa','A6')
INSERT INTO #tipo_premio VALUES (7,'fresa','A7')
INSERT INTO #tipo_premio VALUES (8,'fresa','B1')
INSERT INTO #tipo_premio VALUES (9,'fresa','B2')
INSERT INTO #tipo_premio VALUES (10,'Piña','B1')
INSERT INTO #tipo_premio VALUES (11,'Piña','B2')
INSERT INTO #tipo_premio VALUES (12,'Piña','B3')
INSERT INTO #tipo_premio VALUES (13,'Piña','A1')
INSERT INTO #tipo_premio VALUES (14,'Sandia','A1')
INSERT INTO #tipo_premio VALUES (15,'Sandia','A2')
INSERT INTO #tipo_premio VALUES (16,'Sandia','A3')
INSERT INTO #tipo_premio VALUES (17,'Sandia','A4')
INSERT INTO #tipo_premio VALUES (18,'Sandia','A5')
SELECT t2.*,t1.fechaexpiracion INTO #temp FROM #paletas AS t1 LEFT JOIN
(
SELECT id,sabor,tipo_premio, '' AS tipo_premio2 FROM #tipo_premio WHERE tipo_premio LIKE '%A%'
UNION
SELECT id,sabor,'' AS tipo_premio, tipo_premio AS tipo_premio2 FROM #tipo_premio WHERE tipo_premio LIKE '%B%'
) AS t2 ON (t1.sabor=t2.sabor)
WHERE t1.sabor='piña'
SELECT * INTO #temp2 FROM(
SELECT t1.id,t1.sabor,t1.tipo_premio,t2.tipo_premio2,t1.fechaexpiracion FROM #temp AS t1
INNER JOIN #temp AS t2 ON (t1.sabor=t2.sabor AND SUBSTRING(t1.tipo_premio,2,1)=SUBSTRING(t2.tipo_premio2,2,1))
WHERE t1.tipo_premio<>'' AND t2.tipo_premio2<>''
) AS t3
SELECT * FROM #temp2
UNION
SELECT * FROM(
SELECT id,sabor,tipo_premio,'' tipo_premio2,fechaexpiracion FROM #temp WHERE tipo_premio NOT IN (SELECT tipo_premio FROM #temp2) AND tipo_premio<>''
UNION
SELECT id,sabor,'' tipo_premio,tipo_premio2,fechaexpiracion FROM #temp WHERE tipo_premio NOT IN (SELECT tipo_premio FROM #temp2) AND tipo_premio2<>''
) AS completa
DROP TABLE #temp
DROP TABLE #temp2
Resultado:
1 fresa A1 B1 2014
2 fresa A2 B2 2014
3 fresa A3 2014
4 fresa A4 2014
5 fresa A5 2014
6 fresa A6 2014
7 fresa A7 2014
Piña
id sabor tipo_premio tipo_premio2 fechaexpiracion
10 Piña B1 2013
11 Piña B2 2013
12 Piña B3 2013
13 Piña A1 B1 2013
Solo como comentario, te pongo una respuesta mucho mejor que la del 2 post, y ni siquiera la analisas hasta que te das cuenta de que no es viable.....es lo que me gusta de ayudar en los foros :P