Ver Mensaje Individual
  #1 (permalink)  
Antiguo 21/03/2019, 09:28
dorvax
 
Fecha de Ingreso: octubre-2007
Ubicación: VEVLN
Mensajes: 223
Antigüedad: 16 años, 6 meses
Puntos: 0
pivotear una columna de query

hola amigos, tengo rato dándole vuelta a esto. estoy tratando de pivotear solo una columna de una consulta compuesta por otras consultas en SQLServer 2005

Tengo las Tablas Ventas_web, Ventas_presenciales y CuentasXCobrar

y la Query :

Código:
SELECT CC.PERIODO,
		CC.ID,
		CC.FACTURA,
		CC.FECHA,
		CC.MONTO,
		Q.FECHA_PAGO,
		Q.METODO,
		MIN(ABS(DATEDIFF(DAY,CC.FECHA, Q.FECHA_PAGO))) AS DIAS_PAGO
FROM CuentasXCobrar CC
LEFT JOIN (  SELECT PERIODO, ID, MONTO, FECHA, 'WEB' AS METODO
                       FROM  Tablas Ventas_web
                       UNION  PERIODO, ID, MONTO, FECHA, 'ATC' AS METODO
                        FROM Ventas_presenciales
                     ) Q ON CC.ID = Q.ID AND CC.PERIODO = Q.PERIODO
El resultado es el siguiente:

| PERIODO | ID | FACTURA | FECHA | MONTO | PAGO | METODO | DIAS_PAGO |
---------------------------------------------------------------------------------------------------------------------------------------
| 201902 | 490 | 160175 | 2019-02-14 | 5,228 | 2019-02-28 | WEB | 14 |
| 201902 | 490 | 160175 | 2019-02-14 | 5,233 | 2019-02-28 | ATC | 14 |
| 201902 | 1402 | 241286 | 2019-02-21 | 5,491 | 2019-02-26 | ATC | 5 |
| 201902 | 4031 | 165041 | 2019-02-21 | 4,345 | 2019-02-26 | ATC | 5 |
| 201902 | 1415 | 650418 | 2019-02-18 | 4,345 | 2019-02-20 | ATC | 2 |
| 201902 | 1415 | 650418 | 2019-02-18 | 5,228 | 2019-02-19 | ATC | 1 |
---------------------------------------------------------------------------------------------------------------------------------------

Necesito que los clientes que hicieron más de 1 abono en el mismo periodo se muestren como 1 sola linea, y el monto se muestre en 2 columnas, siendo el método y día de pago referencial el más cercano a cero :

|PERIODO | ID | FACTURA | FECHA | MONTO | MONTO_2 | PAGO | METODO|DIAS_PAGO|
-------------------------------------------------------------------------------------------------------------------
|201902 | 490 | 160175 | 2019-02-14 | 5,228 | 5,233 | 2019-02-28 | WEB | 14 |
|201902 | 1402 | 241286 | 2019-02-21 | 5,491 | 0.00 | 2019-02-26 | ATC | 5 |
|201902 | 4031 | 165041 | 2019-02-21 | 4,345 | 0.00 | 2019-02-26 | ATC | 5 |
|201902 | 1415 | 650418 | 2019-02-18 | 4,345 | 5,228 | 2019-02-20 | ATC | 1 |
------------------------------------------------------------------------------------------------------------

je dado varias vueltas y no he visto forma de solucionarlo, necesito hacer sin usar tablas temporales.

Última edición por dorvax; 21/03/2019 a las 15:00 Razón: acentos