Cita:
Iniciado por khryztall estaba pensando hacerlo en transact pero no manejo muy bien el tema y no obtuve el resultado que esperaba.
Estaba pensando en ayudarte, pero no manejo muy bien el tema.......
Bueno mejor si te ayudo jejejeje
Código SQL:
Ver originalCREATE TABLE #temp
(
consecutivo VARCHAR(20),
trabajador VARCHAR(20),
asistio INT
)
INSERT INTO #temp VALUES ('01','001' ,1)
INSERT INTO #temp VALUES ('01','002' ,0)
INSERT INTO #temp VALUES ('01','003' ,1)
INSERT INTO #temp VALUES ('01','004' ,0)
INSERT INTO #temp VALUES ('02','001',1)
INSERT INTO #temp VALUES ('02','002',1)
INSERT INTO #temp VALUES ('02','003',0)
INSERT INTO #temp VALUES ('02','004',0)
INSERT INTO #temp VALUES ('03','001',1)
INSERT INTO #temp VALUES ('03','002',1)
INSERT INTO #temp VALUES ('03','003',1)
INSERT INTO #temp VALUES ('03','004',1)
INSERT INTO #temp VALUES ('04','001',0)
INSERT INTO #temp VALUES ('04','002',1)
INSERT INTO #temp VALUES ('04','003',1)
INSERT INTO #temp VALUES ('04','004',1)
CREATE TABLE #temp2
(
consecutivo VARCHAR(20),
fecha datetime
)
INSERT INTO #temp2 VALUES ('01','2013-11-01')
INSERT INTO #temp2 VALUES ('02','2013-11-02')
INSERT INTO #temp2 VALUES ('03','2013-11-03')
INSERT INTO #temp2 VALUES ('04','2013-11-04')
SELECT trabajador,[01],[02],[03],[04],([01]+[02]+[03]+[04]) AS suma FROM
(
SELECT t1.consecutivo,t1.trabajador,t1.asistio FROM #temp AS t1
LEFT JOIN #temp2 AS t2 ON (t1.consecutivo=t2.consecutivo)
WHERE fecha BETWEEN '2013-11-01' AND '2013-11-04'
) AS SOURCE
pivot
(
MAX(asistio) FOR consecutivo IN ([01],[02],[03],[04])
) AS pvt
Investiga sobre funciones PIVOT
saludos!!!