miércoles, 17 de diciembre de 2014

SSRS paginar excel


1. Crear un grouping parent
2.  En la propiedad del grouping colocar:
CEILING(RowNumber(Nothing)/60500)
3. Quital el sorting (lo coloca automáticamente)
4. En el tab de Page break seleccionar "Entre cada instancia del grupo".

Nota: Esto usualmente se hace por:
1. Así lo deseamos
2. Nuestro servidor de reportes no soporta el formato xlsx, y tira el error de que se supero el número de filas en el excel. Microsoft sugiere una actualización (http://msdn.microsoft.com/en-us/library/dd255234.aspx​) ante este problema.


martes, 16 de diciembre de 2014

Rango de 3 fechas

sql para agrupar fechas que esten en rango de 3 fechas

DECLARE @TBL_Fechas TABLE
(
TF_Fecha DATE
,TN_Monto MONEY

)


INSERT INTO @TBL_Fechas
SELECT
CAST('2014-10-12' AS DATE)
,10

INSERT INTO @TBL_Fechas
SELECT
CAST('2014-10-13' AS DATE)
,5

INSERT INTO @TBL_Fechas
SELECT
CAST('2014-10-14' AS DATE)
,20

INSERT INTO @TBL_Fechas
SELECT
CAST('2014-10-15' AS DATE)
,1

INSERT INTO @TBL_Fechas
SELECT
CAST('2014-10-16' AS DATE)
,70


SELECT

*
,(SELECT SUM(TL.TN_Monto) FROM @TBL_Fechas TL WHERE TL.TF_Fecha BETWEEN CTE.TF_Fecha AND CTE.TF_FIN)
FROM
(
SELECT
TF_Fecha
,DATEADD(DAY,2,TF_Fecha )  AS TF_FIN
,ROW_NUMBER() OVER (ORDER BY TF_Fecha) AS 'TN_Num_Fila'
FROM @TBL_Fechas
WHERE DATEADD(DAY,2,TF_Fecha ) <= (SELECT MAX(TF_Fecha) FROM @TBL_Fechas)
) AS CTE
INNER JOIN @TBL_Fechas TF
ON TF.TF_Fecha = CTE.TF_Fecha
WHERE (SELECT SUM(TL.TN_Monto) FROM @TBL_Fechas TL WHERE TL.TF_Fecha BETWEEN CTE.TF_Fecha AND CTE.TF_FIN) >= 30


Script desde consola


1. En Simbolo de sistema, ejecutar sqlcmd -i C:\MyFolder\MyScript.sql

http://msdn.microsoft.com/es-es/library/ms180944.aspx

lunes, 16 de diciembre de 2013

Saber si es un número en un campo varchar

El siguiente script ayuda a localizar si en un campo varchar, hay un dato que no sea número. Por que? Por que el cliente quiere números en un campo varchar. Suele suceder.


select  L.I_M, L.VC_NUMERO from T_LIBRO L
where L.VC_NUMERO is not null
and L.VC_NUMERO !=''
and ISNUMERIC(L.VC_NUMERO)=0