SQL – Columna Acumuladora
Adaptación de artículo en http://sqltips.wordpress.com
La siguiente consulta lista los saldos de cuenta corriente, y agrega una columna con el total acumulado. Muy útil como por ejemplo, hacer una ABC de Clientes
La consulta a continuación:
Generando un Millón de registros
Fuente: “Generando un millón de registros en menos de un segundo”
La forma “natural” para generar 1M de números sería
With Base As
(
Select 1 as n
Union All
Select n+1 From Base Where n <1000000
)
select n from base
OPTION (MaxRecursion 0)
El método optimizado genera una primera tabla con la raiz cuadrada de los números a generar ( Base ), luego se aplica un cross join sobre si misma(tabla Expand ), que luego se numera con la tabla Nums ( usando la función Row_Number() )
Recuperando rango de filas con ROW_NUMBER()
Equivalente al limit de MySql
Ej.:
Recupera los registros 18 a 25 de la VTMCLH
SELECT ROW,VTMCLH_NROCTA
FROM
(SELECT ROW_NUMBER() OVER(ORDER BY VTMCLH_NROCTA DESC) AS Row,
VTMCLH_NROCTA
FROM VTMCLH) CLIENTES
WHERE ROW BETWEEN 18 AND 25
Principales 5 clientes por vendedor
Exportar una tabla a Excel sin tener el Office Instalado
fuente original: SqlTeam
Se hace usando el comando BCP.
El Store está modificado. Le agregué la opciónes
-C ANSI
-SServerName
El archivo aqui
Conectar con SQL 2005 Express
Solución encontrada en un foro
Lo hice tal cual y funciona. Por defecto la instalación del sql 2005 express edition no deja conectarse desde otra máquina
Solución:
1. la instalaciónn de la instancia de sql 2005 express debe de estar en modo
de autenticación mixta (windows nt y sql server) implica tener que ingresar
un password (opcional) para la el id de usuario “sa” . o luego crear un
usuario con autenticación sql server.
2. una vez instalada la instancia con autenticación mixta, habilitar los
protocolos TCP/IP y named Pipes ( a través de sql server Configuration
manager u cualquier otra herramienta).
SP_COLUMNAS2
Se pasa como parámetro la tabla y trae todos los campos separados por comas y agrega el FROM: servidor.dbo.tabla. Omite las columnas del tipo timestamp
CREATE PROCEDURE SP_COLUMNAS2
@TABLA VARCHAR(50)
-- Lista de las columnas de una tabla con comas
-- No trae las tipo timestamp
-- Desarrollado por Carlos Pedranti
-- Ultima Modificación: 31/10/2008
-- Ej. de Ejecución
-- Exec Sp_Columnas2 CJRMVI
AS
Lee más »
Funcion Usr_FN_PeriodAdd
Sirve para agregar meses a un Periodo.
Ej : tengo el campo Period con 200801 y quiere restarle 2 meses
SELECT dbo.USR_FN_PeriodAdd(-2,200801)
arroja
200711
Copiar el nombre de las columnas a Excel
Para que desde el SSMS trabajando en modo grilla copie el nombre de las columnas, hay que setear tools-options -query results -Result to Grid y ahí ponerle el check a “Include columns headers when copy or saving the results “


