2017-02-17 101 views
-2

我有一個錯誤在我的條款SQL參考 'PARAM' 不支持(參照組功能)

SELECT e.id_pedido, 
     d.pregunta, 
     Group_concat(d.respuesta)   AS respuestan, 
     e.cedula_usuario, 
     (SELECT `nombres` 
     FROM `usuarios` 
     WHERE `cedula` = e.cedula_usuario) AS nombreUsuario, 
     (SELECT `id_supervisor` 
     FROM `usuarios` 
     WHERE `cedula` = e.cedula_usuario) AS idSupervisor, 
     e.cedula_cliente, 
     c.`nit`, 
     c.`contacto`, 
     c.cod_ciudad, 
     c.nom_ciudad, 
     c.cod_barrio, 
     c.n         om_barrio, 
     c.direccion, 
     c.telefono, 
     e.fecha_pedido, 
     e.hora_final, 
     (SELECT p.descripcion 
     FROM `preguntas_encuesta_obligatoria` AS p 
     WHERE p.encuesta = '34' 
       AND p.id_preg = d.pregunta 
       AND p.consecutivo_preg = '1' 
       AND p.tipo = '1')   AS preguntaFin, 
     (SELECT Group_concat(descripcion) AS descripcion 
     FROM `preguntas_encuesta_obligatoria` 
     WHERE encuesta = '34' 
       AND id_preg = d.pregunta 
       AND consecutivo_preg IN (respuestan) 
       AND tipo = '2')    AS respuestaFin, 
     (SELECT `unidad_de_negocio` 
     FROM `usuarios` 
     WHERE `cedula` = e.cedula_usuario) AS unidad_negocio, 
     (SELECT `id_unidad_negocio` 
     FROM `usuarios` 
     WHERE `cedula` = e.cedula_usuario) AS id_unidad_negocio 
FROM `encuesta_obligatoria` AS e 
     INNER JOIN encuesta_obligatoria_detalle AS d 
       ON e.id_pedido = d.id_encuesta 
     INNER JOIN clientes AS c 
       ON e.cedula_cliente = c.cedula 
WHERE e.`fecha_pedido` >= '2017-02-13' 
     AND e.`fecha_pedido` <= '2017-02-16' 
     AND d.encuesta = '34' 
GROUP BY e.id_pedido, 
      d.pregunta 
ORDER BY e.id_pedido DESC, 
      d.pregunta ASC, 
      d.respuesta ASC 

參考 'respuestan' 不支持(參照組功能)

+2

你可能會考慮格式化查詢,以便其他人可以讀取它。 –

+0

嘗試使用http://www.dpriver.com/pp/sqlformat.htm工具來格式化您的查詢。 –

回答

0

GROUP_CONCAT()返回串聯的字符串,並且您試圖將其用作集合。

SELECT e.id_pedido, 
    d.pregunta, 
    Group_concat(d.respuesta)   AS respuestan, 
    (SELECT Group_concat(descripcion) AS descripcion 
    FROM `preguntas_encuesta_obligatoria` 
    WHERE encuesta = '34' 
      AND id_preg = d.pregunta 
      AND consecutivo_preg IN (respuestan) <-- You cant do this 
      AND tipo = '2')    AS respuestaFin, 

相反,你必須有一個適當的SELECT

consecutivo_preg IN (SELECT consecutivo_preg FROM ... WHERE ...)