Access - AYUDA [Columnas a Filas]

 
Vista:
sin imagen de perfil

AYUDA [Columnas a Filas]

Publicado por Raul (2 intervenciones) el 03/05/2018 18:09:01
Necesito urgentemente ayuda, el pasado viernes lo hice funcionar, pero toque el codigo en fin de semana y ahora ya no, y estoy desesperado, necesito pasar columnas a filas, sin que ningun dato se pierda, sin duplicados, que tome en cuenta la FECHA y WORKED que es el trabajador.

Tabla Original

Original

Resultado Deseado (Casi)

Resultado

Mi problema es que tanto las cantidades como los trabajadores estan en columnas, en la misma tabla estan los meses en columnas tambien, por lo que al juntar en la consulta final todos los trabajadores en una sola columna, me suma en la cantidad otras personas que no deben ir al caso, ya que donde dice 2518 Erick Molina, 2000 son en realidad de Valezka Vado para la cuenta 5-16006 para el dia 04/26/2018, por alguna razon no me divide el dia 26 y lo junta con el 27, deberia hacerme un quiebre individual tomando en cuenta que la fecha es diferente al igual que el trabajador, mi codigo es el siguiente:

SELECT DISTINCT IIf(YearRegister.Client=Clients.ID,Clients.Client) AS Client, YearRegister.RegYear, IIf(YearRegister.Account=Accounts.ID,Accounts.Account) AS Account, Accounts.Type, Accounts.Class, Accounts.Category, Accounts.AccountNo, IIf((Month(Date1)=Month(Now()) And Year(Date1)=Year(Now())),Sum(Trans1),0) AS u1, IIf((Month(Date2)=Month(Now()) And Year(Date2)=Year(Now())),Sum(Trans2),0) AS u2, IIf((Month(Date3)=Month(Now()) And Year(Date3)=Year(Now())),Sum(Trans3),0) AS u3, IIf((Month(Date4)=Month(Now()) And Year(Date4)=Year(Now())),Sum(Trans4),0) AS u4, IIf((Month(Date5)=Month(Now()) And Year(Date5)=Year(Now())),Sum(Trans5),0) AS u5, IIf((Month(Date6)=Month(Now()) And Year(Date6)=Year(Now())),Sum(Trans6),0) AS u6, IIf((Month(Date7)=Month(Now()) And Year(Date7)=Year(Now())),Sum(Trans7),0) AS u7, IIf((Month(Date8)=Month(Now()) And Year(Date8)=Year(Now())),Sum(Trans8),0) AS u8, IIf((Month(Date9)=Month(Now()) And Year(Date9)=Year(Now())),Sum(Trans9),0) AS u9, IIf((Month(Date10)=Month(Now()) And Year(Date10)=Year(Now())),Sum(Trans10),0) AS u10, IIf((Month(Date11)=Month(Now()) And Year(Date11)=Year(Now())),Sum(Trans11),0) AS u11, IIf((Month(Date12)=Month(Now()) And Year(Date12)=Year(Now())),Sum(Trans12),0) AS u12, IIf(Month(Date1)=Month(Now()) And Year(Date1)=Year(Now()),Date1,IIf(Month(Date2)=Month(Now()) And Year(Date2)=2018,Date2,IIf(Month(Date3)=Month(Now()) And Year(Date3)=Year(Now()),Date3,IIf(Month(Date4)=Month(Now()) And Year(Date4)=Year(Now()),Date4,IIf(Month(Date5)=Month(Now()) And Year(Date5)=Year(Now()),Date5,IIf(Month(Date6)=Month(Now()) And Year(Date6)=Year(Now()),Date6,IIf(Month(Date7)=Month(Now()) And Year(Date7)=Year(Now()),Date7,IIf(Month(Date8)=Month(Now()) And Year(Date8)=Year(Now()),Date8,IIf(Month(Date9)=Month(Now()) And Year(Date9)=Year(Now()),Date9,IIf(Month(Date10)=Month(Now()) And Year(Date10)=Year(Now()),Date10,IIf(Month(Date11)=Month(Now()) And Year(Date11)=Year(Now()),Date11,IIf(Month(Date12)=Month(Now()) And Year(Date12)=Year(Now()),Date12,Null)))))))))))) AS Fechas, IIf((month(Date1)=month(now()) And Year(Date1)=year(now())) And Work1<>'',Work1,IIf((month(Date2)=month(now()) And Year(Date2)=year(now())) And Work2<>'',Work2,IIf((month(Date3)=month(now()) And Year(Date3)=year(now())) And Work3<>'',Work3,IIf((month(Date4)=month(now()) And Year(Date4)=year(now())) And Work4<>'',Work4,IIf((month(Date5)=month(now()) And Year(Date5)=year(now())) And Work5<>'',Work5,IIf((month(Date6)=month(now()) And Year(Date6)=year(now())) And Work6<>'',Work6,IIf((month(Date7)=month(now()) And Year(Date7)=year(now())) And Work7<>'',Work7,IIf((month(Date8)=month(now()) And Year(Date8)=year(now())) And Work8<>'',Work8,IIf((month(Date9)=month(now()) And Year(Date9)=year(now())) And Work9<>'',Work9,IIf((month(Date10)=month(now()) And Year(Date10)=year(now())) And Work10<>'',Work10,IIf((month(Date11)=month(now()) And Year(Date11)=year(now())) And Work11<>'',Work11,IIf((month(Date12)=month(now()) And Year(Date12)=year(now())) And Work12<>'',Work12)))))))))))) AS Worked
FROM YearRegister, Accounts, Clients
WHERE YearRegister.Account=Accounts.ID and YearRegister.Client=Clients.ID and (Date1<>Null or Date2 <> Null or Date3 <> Null or Date4 <> Null or Date5 <> Null or Date6 <> Null or Date7 <> Null or Date8 <> Null or Date9 <> Null or Date10 <> Null or Date11 <> Null or Date12 <> Null) and ((month(Date1)=month(now) and Year(Date1)=year(now)) or (month(Date2)=month(now) and Year(Date2)=year(now)) or (month(Date3)=month(now) and Year(Date3)=year(now)) or (month(Date4)=month(now) and Year(Date4)=year(now)) or (month(Date5)=month(now) and Year(Date5)=year(now)) or (month(Date6)=month(now) and Year(Date6)=year(now)) or (month(Date7)=month(now) and Year(Date7)=year(now)) or (month(Date8)=month(now) and Year(Date8)=year(now)) or (month(Date9)=month(now) and Year(Date9)=year(now)) or (month(Date10)=month(now) and Year(Date10)=year(now)) or (month(Date11)=month(now) and Year(Date11)=year(now)) or (month(Date12)=month(now) and Year(Date12)=year(now)))
GROUP BY YearRegister.RegYear, Accounts.Type, Accounts.Class, Accounts.Category, Accounts.AccountNo, YearRegister.Client, Clients.ID, Clients.Client, YearRegister.Account, Accounts.ID, Accounts.Account, YearRegister.Date1, YearRegister.Date2, YearRegister.Date3, YearRegister.Date4, YearRegister.Date5, YearRegister.Date6, YearRegister.Date7, YearRegister.Date8, YearRegister.Date9, YearRegister.Date10, YearRegister.Date11, YearRegister.Date12, YearRegister.Work1, YearRegister.Work2, YearRegister.Work3, YearRegister.Work4, YearRegister.Work5, YearRegister.Work6, YearRegister.Work7, YearRegister.Work8, YearRegister.Work9, YearRegister.Work10, YearRegister.Work11, YearRegister.Work12;


*** Si no me doy a entender me escriben a mi email *** agradeceria su pronta ayuda, ademas aclaro que a mi si me llego a funcionar el viernes pasado, pero lo toque por otros motivos y cuando me fije ya no me daba el mismo resultado y ya no recuerdo que hice, lamentablemente no tengo copia anterior.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

AYUDA [Columnas a Filas]

Publicado por Raul (2 intervenciones) el 03/05/2018 21:35:58
Alguien que me de una opinión o al menos me diga si es imposible? lo unico que pido es modificar la cadena SQL para que no me junte los empleados en una misma fecha como lo hace ahi, las sumas las hace conforme al mes y año y la cuenta y el trabajador, pero me suma trabajadores donde no debe, si es posible individualizar cada registro de columnas a filas no tengo problema, podria hacer otra consulta sobre esa consulta para tener los totales, pero no se como
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

AYUDA [Columnas a Filas]

Publicado por Anonimo (3316 intervenciones) el 05/05/2018 03:04:28
El traspaso de columnas a filas, se logra (aparte de con código) con consultas de DATOS CRUZADOS, analizar la SQL posteada es el camino mas directo a un fuerte dolor de cabeza.

Quizas un nuevo análisis (y un nuevo enfoque), permita generar pasos previos (subconsultas) que aligeren y aceleren el tratamiento de esos datos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar