hacer referencia a campo con número

17/07/2008 - 16:01 por Oscar | Informe spam
Hola, tengo un campo/columna de mi sql que tiene el nombre en formato número
como se ven en la sentencia sql y cuando la llamo en una sentencian agrupada
usando la instrucción sum me da error, he probado entre corchetes, con
comillas,... pero no funciona, alguna idea?

SELECT AREA, DESCRIPCION, SUM('100') AS Expr1
FROM (SELECT TOP (100) PERCENT
BL_TARIFAS_ACTIVIDAD_LINEAS.BLTARACTLIN_AREA AS AREA,
BL_AREAS.BLAREA_DESCRIPCION AS DESCRIPCION,
CASE WHEN BLTARACTLIN_CANTMAX
= 100 THEN BLTARACTLIN_PRECIO ELSE 0 END AS '100',
CASE WHEN BLTARACTLIN_CANTMAX
= 999999 THEN BLTARACTLIN_PRECIO ELSE 0 END AS '999999'
FROM BL_TARIFAS_ACTIVIDAD_LINEAS INNER JOIN
BL_AREAS ON
BL_TARIFAS_ACTIVIDAD_LINEAS.BLTARACTLIN_AREA = BL_AREAS.BLAREA_CODIGO
WHERE
(BL_TARIFAS_ACTIVIDAD_LINEAS.BLTARACTLIN_ACTIVIDAD = '14')
ORDER BY AREA) AS V
GROUP BY AREA, DESCRIPCION

Preguntas similare

Leer las respuestas

#1 Victor Koch
17/07/2008 - 17:04 | Informe spam
Probaste anteponerle el nombre de la tabla ?

. SUM([Mitabla.100]) .


Un Saludo, Víctor Koch



"Oscar" escribió en el mensaje
news:
Hola, tengo un campo/columna de mi sql que tiene el nombre en formato
número como se ven en la sentencia sql y cuando la llamo en una sentencian
agrupada usando la instrucción sum me da error, he probado entre
corchetes, con comillas,... pero no funciona, alguna idea?

SELECT AREA, DESCRIPCION, SUM('100') AS Expr1
FROM (SELECT TOP (100) PERCENT
BL_TARIFAS_ACTIVIDAD_LINEAS.BLTARACTLIN_AREA AS AREA,
BL_AREAS.BLAREA_DESCRIPCION AS DESCRIPCION,
CASE WHEN BLTARACTLIN_CANTMAX
= 100 THEN BLTARACTLIN_PRECIO ELSE 0 END AS '100',
CASE WHEN BLTARACTLIN_CANTMAX
= 999999 THEN BLTARACTLIN_PRECIO ELSE 0 END AS '999999'
FROM BL_TARIFAS_ACTIVIDAD_LINEAS INNER JOIN
BL_AREAS ON
BL_TARIFAS_ACTIVIDAD_LINEAS.BLTARACTLIN_AREA = BL_AREAS.BLAREA_CODIGO
WHERE
(BL_TARIFAS_ACTIVIDAD_LINEAS.BLTARACTLIN_ACTIVIDAD = '14')
ORDER BY AREA) AS V
GROUP BY AREA, DESCRIPCION

Respuesta Responder a este mensaje
#2 Oscar
17/07/2008 - 17:15 | Informe spam
Sigue sin funcionar, he puesto lo siguiente:

SELECT AREA, DESCRIPCION, SUM([V.100]) AS Expr1...

y me dice que el nombre de la columna V.100 ES INCORRECTO.
La sentencia completa es:

SELECT AREA, DESCRIPCION, SUM([V.100]) AS Expr1
FROM (SELECT TOP (100) PERCENT
BL_TARIFAS_ACTIVIDAD_LINEAS.BLTARACTLIN_AREA AS AREA,
BL_AREAS.BLAREA_DESCRIPCION AS DESCRIPCION,
CASE WHEN BLTARACTLIN_CANTMAX
= 100 THEN BLTARACTLIN_PRECIO ELSE 0 END AS '100',
CASE WHEN BLTARACTLIN_CANTMAX
= 999999 THEN BLTARACTLIN_PRECIO ELSE 0 END AS '999999'
FROM BL_TARIFAS_ACTIVIDAD_LINEAS INNER JOIN
BL_AREAS ON
BL_TARIFAS_ACTIVIDAD_LINEAS.BLTARACTLIN_AREA = BL_AREAS.BLAREA_CODIGO
WHERE
(BL_TARIFAS_ACTIVIDAD_LINEAS.BLTARACTLIN_ACTIVIDAD = '14')
ORDER BY AREA) AS V
GROUP BY AREA, DESCRIPCION

Saludos, Oscar

"Victor Koch" <v i c t o r (arroba)correo(punto)waldbott(punto)com(punto)ar>
escribió en el mensaje news:%
Probaste anteponerle el nombre de la tabla ?

. SUM([Mitabla.100]) .


Un Saludo, Víctor Koch



"Oscar" escribió en el mensaje
news:
Hola, tengo un campo/columna de mi sql que tiene el nombre en formato
número como se ven en la sentencia sql y cuando la llamo en una
sentencian agrupada usando la instrucción sum me da error, he probado
entre corchetes, con comillas,... pero no funciona, alguna idea?

SELECT AREA, DESCRIPCION, SUM('100') AS Expr1
FROM (SELECT TOP (100) PERCENT
BL_TARIFAS_ACTIVIDAD_LINEAS.BLTARACTLIN_AREA AS AREA,
BL_AREAS.BLAREA_DESCRIPCION AS DESCRIPCION,
CASE WHEN
BLTARACTLIN_CANTMAX = 100 THEN BLTARACTLIN_PRECIO ELSE 0 END AS '100',
CASE WHEN
BLTARACTLIN_CANTMAX = 999999 THEN BLTARACTLIN_PRECIO ELSE 0 END AS
'999999'
FROM BL_TARIFAS_ACTIVIDAD_LINEAS INNER
JOIN
BL_AREAS ON
BL_TARIFAS_ACTIVIDAD_LINEAS.BLTARACTLIN_AREA = BL_AREAS.BLAREA_CODIGO
WHERE
(BL_TARIFAS_ACTIVIDAD_LINEAS.BLTARACTLIN_ACTIVIDAD = '14')
ORDER BY AREA) AS V
GROUP BY AREA, DESCRIPCION





Respuesta Responder a este mensaje
#3 Carlos M. Calvelo
17/07/2008 - 18:23 | Informe spam
Hola Oscar,

On 17 jul, 17:15, "Oscar" wrote:
Sigue sin funcionar, he puesto lo siguiente:

SELECT     AREA, DESCRIPCION, SUM([V.100]) AS Expr1...

y me dice que el nombre de la columna V.100 ES INCORRECTO.
La sentencia completa es:




Prueba con SUM([100]) o SUM(V.[100])

Saludos,
Carlos
Respuesta Responder a este mensaje
#4 Oscar
18/07/2008 - 08:59 | Informe spam
he probado también con esas combinaciones y nada de nada, alguna idea más?

"Carlos M. Calvelo" escribió en el mensaje
news:
Hola Oscar,

On 17 jul, 17:15, "Oscar" wrote:
Sigue sin funcionar, he puesto lo siguiente:

SELECT AREA, DESCRIPCION, SUM([V.100]) AS Expr1...

y me dice que el nombre de la columna V.100 ES INCORRECTO.
La sentencia completa es:




Prueba con SUM([100]) o SUM(V.[100])

Saludos,
Carlos
Respuesta Responder a este mensaje
#5 Carlos M. Calvelo
18/07/2008 - 11:20 | Informe spam
Hola Oscar,

On 18 jul, 08:59, "Oscar" wrote:
he probado también con esas combinaciones y nada de nada, alguna idea más?




Pues... ni idea!

Quizás el problema esté en algo que no nos estás dejando ver ???

Si haces algo así:
select
area,
sum([100]) as suma
from
(
select 1 as area, 12 as [100]
union select 1 , 13
union select 2 , 14
union select 2 , 18
) as v
group by area
-
... pues funciona.

Fíjate que yo nombro la columna así [100], en vez de '100',
aunque eso no debería importar.


De todas formas la consulta que has dejado ver al
principio, creo que es equivalente a esta, mas sencilla:

SELECT
T.BLTARACTLIN_AREA AS AREA,
A.BLAREA_DESCRIPCION AS DESCRIPCION,
SUM(
CASE BLTARACTLIN_CANTMAX
WHEN 100 THEN BLTARACTLIN_PRECIO
ELSE 0
END
) AS Expr1
FROM
BL_TARIFAS_ACTIVIDAD_LINEAS T
INNER JOIN BL_AREAS A
ON T.BLTARACTLIN_AREA = A.BLAREA_CODIGO
WHERE
T.BLTARACTLIN_ACTIVIDAD = '14'
GROUP BY
T.BLTARACTLIN_AREA,
A.BLAREA_DESCRIPCION
ORDER BY
AREA

A ver si te vale de algo, porque como digo al principio... ni idea.

Saludos,
Carlos
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida