SQL - AYUDA CON SUBCONSULTA

 
Vista:

AYUDA CON SUBCONSULTA

Publicado por Silvia (5 intervenciones) el 11/05/2017 18:17:57
Hola,

Os copio una consulta que he hecho pero me da error, algo debe de haber mal pero no logro identificarlo, alguien puede ayudarme????

Gracias!!!!

SELECT
CABEPEDV.CENTROCOSTE, NUMDOC, FECHA, NOMCLI, BASE, PRECIO, TOTDOC, FORPAG,
CABEPEDV.PARAM1, PARAM2, LINEPEDI.PARAM1,
DESCLIN,FECENTREGA, NOMREP, POBCLI, COSTE= SUM(COSTE), MARGEN= SUM(MARGEN)

FROM
(SELECT CABEPEDV.CENTROCOSTE AS CCOSTE, CABEPEDV.NUMDOC AS PEDIDO, CABEPEDV.FECHA AS FECHA, CABEPEDV.NOMCLI AS CLIENTE,
CABEPEDV.BASE AS BIMPONIBLE, LINEPEDI.PRECIO AS PRECIO, CABEPEDV.TOTDOC AS TOTAL, CABEPEDV.FORPAG AS FPAGO,
CABEPEDV.PARAM1 AS SITCOBRO, CABEPEDV.PARAM2 AS INSTALADOR, LINEPEDI.PARAM1 AS CINSTALACION,
LINEPEDI.DESCLIN AS ARTICULO, CABEPEDV.FECENTREGA AS FINSTALACION, REPRESEN.NOMREP AS COMERCIAL, CABEPEDV.POBCLI AS POBLACION,
SUM(LINEPEDI.UNIDADES*LINEPEDI.PRCMEDIO) AS COSTE,
SUM(CABEPEDV.BASE-LINEPEDI.PARAM1-LINEPEDI.UNIDADES*LINEPEDI.PRCMEDIO) AS MARGEN

FROM CABEPEDV
INNER JOIN LINEPEDI ON CABEPEDV.IDPEDV = LINEPEDI.IDPEDV
INNER JOIN REPRESEN ON CABEPEDV.CODREP = REPRESEN.CODREP

WHERE (cabepedv.Fecha >= [FechaDesde,DATETIME] AND cabepedv.Fecha <= [FechaHasta,DATETIME])

GROUP BY CABEPEDV.CENTROCOSTE, NUMDOC, CABEPEDV.FECHA, NOMCLI,
CABEPEDV.BASE, PRECIO, TOTDOC, FORPAG, CABEPEDV.PARAM1, CABEPEDV.PARAM2,LINEPEDI.PARAM1,
DESCLIN, CABEPEDV.FECENTREGA, NOMREP, POBCLI)sq
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 806
Bronce
Ha mantenido su posición en SQL (en relación al último mes)
Gráfica de SQL

AYUDA CON SUBCONSULTA

Publicado por leonardo_josue (1173 intervenciones) el 11/05/2017 18:48:07
Hola Silvia...

Si no es mucha molestia, podrías decirnos qué error es el que te está marcando... lamentablemente creo que aquí no hay adivinos.

Si es posible, también coméntanos con qué BD's estás trabajando, ya que todos manejan una sintaxis distinta


Saludos
Leo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

AYUDA CON SUBCONSULTA

Publicado por Silvia (5 intervenciones) el 12/05/2017 09:19:21
Hola Leo,

Perdona tienes razón.

Este es el error:
El identificador formado por varias partes "CABEPEDV.CENTROCOSTE" no se pudo enlazar.

Estoy trabajando con SQL Server

Saludos
Silvia
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 806
Bronce
Ha mantenido su posición en SQL (en relación al último mes)
Gráfica de SQL

AYUDA CON SUBCONSULTA

Publicado por leonardo_josue (1173 intervenciones) el 12/05/2017 18:38:21
Hola de nuevo Silvia:

Creo que sé por donde va el error:

Veo que en el SELECT externo, estás utilizando los nombres de los campos ORIGINALES, sin embargo, en la sobconsulta estás poniendo ALIAS, por lo tanto debes hacer referencia a estos ALIAS, prueba la consulta así:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
SELECT
  CCOSTE,
  PEDIDO,
  FECHA,
  CLIENTE,
  BIMPONIBLE,
  PRECIO,
  TOTAL,
  FPAGO,
  SITCOBRO,
  INSTALADOR,
  CINSTALACION,
  ARTICULO,
  FINSTALACION,
  COMERCIAL,
  POBLACION,
  COSTE= SUM(COSTE),
  MARGEN= SUM(MARGEN)
FROM
(  SELECT
     CABEPEDV.CENTROCOSTE AS CCOSTE,
     CABEPEDV.NUMDOC AS PEDIDO,
     CABEPEDV.FECHA AS FECHA,
     CABEPEDV.NOMCLI AS CLIENTE,
     CABEPEDV.BASE AS BIMPONIBLE,
     LINEPEDI.PRECIO AS PRECIO,
     CABEPEDV.TOTDOC AS TOTAL,
     CABEPEDV.FORPAG AS FPAGO,
     CABEPEDV.PARAM1 AS SITCOBRO,
     CABEPEDV.PARAM2 AS INSTALADOR,
     LINEPEDI.PARAM1 AS CINSTALACION,
     LINEPEDI.DESCLIN AS ARTICULO,
     CABEPEDV.FECENTREGA AS FINSTALACION,
     REPRESEN.NOMREP AS COMERCIAL,
     CABEPEDV.POBCLI AS POBLACION,
     SUM(LINEPEDI.UNIDADES*LINEPEDI.PRCMEDIO) AS COSTE,
     SUM(CABEPEDV.BASE-LINEPEDI.PARAM1-LINEPEDI.UNIDADES*LINEPEDI.PRCMEDIO) AS MARGEN
   FROM CABEPEDV
   INNER JOIN LINEPEDI ON CABEPEDV.IDPEDV = LINEPEDI.IDPEDV
   INNER JOIN REPRESEN ON CABEPEDV.CODREP = REPRESEN.CODREP
   WHERE (cabepedv.Fecha >= [FechaDesde,DATETIME] AND cabepedv.Fecha <= [FechaHasta,DATETIME])
   GROUP BY CABEPEDV.CENTROCOSTE, NUMDOC, CABEPEDV.FECHA, NOMCLI,
   CABEPEDV.BASE, PRECIO, TOTDOC, FORPAG, CABEPEDV.PARAM1, CABEPEDV.PARAM2,LINEPEDI.PARAM1,
   DESCLIN, CABEPEDV.FECENTREGA, NOMREP, POBCLI )sq


Observa que todos los campos tienen que hacer referencia al alias que tiene la tabla resultante SQ...

Saludos
Leo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

AYUDA CON SUBCONSULTA

Publicado por Silvia (5 intervenciones) el 15/05/2017 09:33:59
Hola Leo,

Muchas gracias.

Problema resuelto
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar