Consulta de referencias cruzadas en SQLServer

02/11/2006 - 17:29 por Valentín | Informe spam
Hola,

he pasado una base de datos de Jet a SQL Server y estoy probando la
aplicación (MDB) con las tablas vinculadas a SQL Server en lugar de a
Jet como hasta ahora.

Tengo varias consultas de referencias cruzadas con muchos campos (más
de 20 en algún caso) como cabecera de fila que funcionaban bien con
Jet y ahora con SQLServer producen un error de Access (de esos de
¿Quiere que se envie el informe a Microsoft?). El error se produce
cuando hay más de 15 campos como cabecera de fila.


Estoy intentando hacer la consulta en SQLServer para ejecutarla con de
Paso a través o con un procedimiento almacenado pero la sintaxis del
SQL parece muy distinta de la de Jet. Por ejemplo parece que no exista

TRANSFORM en SqlServer.


Os agradecería cualquier ayuda para resolver el error con la consulta
original o para construir la consulta o una tabla de referencias
cruzadas en SQLServer.


Gracias y saludos,


Valentín Playá
Sonotronic S.A.
Madrid, España
 

Leer las respuestas

#1 Salvador Ramos
02/11/2006 - 18:37 | Informe spam
Hola,

En Transact SQL no existe un equivalente totalmente compatible con las
referencias cruzadas de Access. Si utilizas SQL Server 2000 tienes que
utilizar la instrucción CASE, si utilizas 2005 tienes la cláusula PIVOT que
te facilita bastante la labor.

En cuanto a Transform de Access no sé lo que hace exactamente.

Un saludo
Salvador Ramos
Murcia - España

[Microsoft MVP SQL Server]
www.helpdna.net (información sobre SQL Server y .NET)


"Valentín" escribió en el mensaje
news:
Hola,

he pasado una base de datos de Jet a SQL Server y estoy probando la
aplicación (MDB) con las tablas vinculadas a SQL Server en lugar de a
Jet como hasta ahora.

Tengo varias consultas de referencias cruzadas con muchos campos (más
de 20 en algún caso) como cabecera de fila que funcionaban bien con
Jet y ahora con SQLServer producen un error de Access (de esos de
¿Quiere que se envie el informe a Microsoft?). El error se produce
cuando hay más de 15 campos como cabecera de fila.


Estoy intentando hacer la consulta en SQLServer para ejecutarla con de
Paso a través o con un procedimiento almacenado pero la sintaxis del
SQL parece muy distinta de la de Jet. Por ejemplo parece que no exista

TRANSFORM en SqlServer.


Os agradecería cualquier ayuda para resolver el error con la consulta
original o para construir la consulta o una tabla de referencias
cruzadas en SQLServer.


Gracias y saludos,


Valentín Playá
Sonotronic S.A.
Madrid, España

Preguntas similares