Como obtener el último registro de una categoría dada usando la función RANK

Supongamos que queremos obtener el último producto vendido de cada categoría, la forma mas sencilla de realizar esto es utilizando la función RANK particionando por la categoría y ordenando por orden inverso por la fecha de venta, luego filtramos por el rango obtenido ( rank = 1) y ahi obtenemos el último de cada categoría.

SELECT *
FROM
(
SELECT top 100 categoria_id
, producto_id
, fechadeventa, Rank() over (Partition BY categoria_id ORDER BY fechadeventa DESC ) AS rango
FROM
productosvendidos
) rs WHERE rango = 1

Hugo Bernachea
Twitter: @bernachea
el.kyrios@yahoo.com
Read More...

Cannot open user default database. Login failed. SQL 2005

En linea de comandos ejecutar la utilidad sqlcmd: sqlcmd -E -d master

Una vez dentro de la línea de comandos de SQL Server ejecutar (reemplazar miLogin con el login que no está pudiendo acceder al servidor)

alter login miLogin with default_database = master

go

Y ya estaría habilitado el acceso a la base.

Hugo Román Bernachea
Mail de contacto: SQLServer777@gmail.com

Microsoft Certified DBA
Microsoft Certified Trainer
Twitter: @bernachea

Read More...

Error 945 Database cannot be opened due to inaccessible files

SQL SERVER – FIX : Error 945 Database cannot be opened due to inaccessible files or insufficient memory or disk space. See the SQL Server error log for details
Este es un error mas o menos común y los pasos de verificación son los siguientes:
Paso 1: Identificar el status de la base de datos
use master
select databaseproperty(‘db_name’,'isShutdown’)

La mayor parte de las veces debería devolver 1 en esta situación.
Paso 2: Limpiar el estado interno de la Base de datos.
use master
alter database db_name set offline

Finaliza sin error en la mayoría de los casos...
Paso 3: Poner la base de nuevo Online

use master

alter database db_name set online
SQL Server verificará el log y la base de datos y si todo está ok ya tendriamos la base nuevamente online y funcional.


Hugo Román Bernachea
Mail de contacto: SQLServer777@gmail.com

Microsoft Certified DBA
Microsoft Certified Trainer
Twitter: @bernachea

Read More...