Error interno de SQL server

27/08/2004 - 17:54 por Gustavo | Informe spam
Hola a todos, les comento mi duda

Ejecuto una consulta en SQL 7 que posee unas cuantas
subconsultas
esta consulta posee un sum de x campo y se encuentra
agrupada por otros campos
El error que me sale es "Error interno de SQL Server"
buscando en microsoft lei que tenia que bajar el SP 2 de
SQL, hice esto pero el problema persiste.

en todas las pruebas que hice me di cuenta que lo que le
molesta al motor es el sum (de la consulta contenedora)por
cualquier campo, ya que si lo saco anda de forma correcta.
pero como yo necesito este sum segui probando.

La solucion que encontre fue esta:
A una subconsulta le agregue la misma clausula where de la
consulta contenedora.

La duda que tengo es esta es posible que el motor del SQL
7 en determinados casos ejecuta las subconsultas sin tener
en cuenta el filtro que se hace en la consulta contenedora.
para luego filtrar todo junto.

Perdonen la extencion del mensaje pero queria explicarlo
de la manera mas clara posible.

JM



Select w.* from (select
nCod_tema,ncod_agencia,ncod_vehiculo,ncod_tcompra,
ncod_anunciante,sum(nRating_Calc)as nRating_Calc
from(select
nCod_tema,ncod_agencia,emision_tvrd.ncod_vehiculo,ncod_tcom
pra,ncod_anunciante,nRating_Calc = ( select Sum(S.nrating)
from (select nrating = (Select top 1 nrating from rating
as rating Where rating.nCod_Vehiculo =
emision_tvrd.nCod_Vehiculo and rating.nFecha =
emision_tvrd.nFecha and rating.nHora >= emision_tvrd.nHora
and nCod_Target = 4
Server

) ) as S)
from emision_tvrd
inner join vehiculo v on v.ncod_vehiculo =
emision_tvrd.nCod_Vehiculo and v.ncod_vehiculo_clase in
(1,3) Where nfecha between 20040801 and 20040816
) as S group by
nCod_tema,ncod_agencia,ncod_vehiculo,ncod_tcompra,ncod_anun
ciante
) as W
 

Leer las respuestas

#1 Manuel Etcheto
27/08/2004 - 19:44 | Informe spam
Hola,
En principio tenés un desbordamiento en el número que le pasas como fecha,
entiendo que para provocar una conversión implícita el where sería: between
'20040801' and '20040816' con comillas simples

o si lo querés como número: between 38198 and 38213 que son los números
respectivos
Suerte
Manuel


Gustavo escribió en el mensaje de
noticias 178e01c48c4e$32bb4d10$
Hola a todos, les comento mi duda

Ejecuto una consulta en SQL 7 que posee unas cuantas
subconsultas
esta consulta posee un sum de x campo y se encuentra
agrupada por otros campos
El error que me sale es "Error interno de SQL Server"
buscando en microsoft lei que tenia que bajar el SP 2 de
SQL, hice esto pero el problema persiste.

en todas las pruebas que hice me di cuenta que lo que le
molesta al motor es el sum (de la consulta contenedora)por
cualquier campo, ya que si lo saco anda de forma correcta.
pero como yo necesito este sum segui probando.

La solucion que encontre fue esta:
A una subconsulta le agregue la misma clausula where de la
consulta contenedora.

La duda que tengo es esta es posible que el motor del SQL
7 en determinados casos ejecuta las subconsultas sin tener
en cuenta el filtro que se hace en la consulta contenedora.
para luego filtrar todo junto.

Perdonen la extencion del mensaje pero queria explicarlo
de la manera mas clara posible.

JM



Select w.* from (select
nCod_tema,ncod_agencia,ncod_vehiculo,ncod_tcompra,
ncod_anunciante,sum(nRating_Calc)as nRating_Calc
from(select
nCod_tema,ncod_agencia,emision_tvrd.ncod_vehiculo,ncod_tcom
pra,ncod_anunciante,nRating_Calc = ( select Sum(S.nrating)
from (select nrating = (Select top 1 nrating from rating
as rating Where rating.nCod_Vehiculo > emision_tvrd.nCod_Vehiculo and rating.nFecha > emision_tvrd.nFecha and rating.nHora >= emision_tvrd.nHora
and nCod_Target = 4
Server

) ) as S)
from emision_tvrd
inner join vehiculo v on v.ncod_vehiculo > emision_tvrd.nCod_Vehiculo and v.ncod_vehiculo_clase in
(1,3) Where nfecha between 20040801 and 20040816
) as S group by
nCod_tema,ncod_agencia,ncod_vehiculo,ncod_tcompra,ncod_anun
ciante
) as W


Preguntas similares