2012-10-25 76 views
-2

我在这个SQL语句中的错误,我不知道为什么:用sql语句的问题

SELECT t1.id_servidor_virtual as id_servidor_virtual, 
    t1.nombre_servidor as nombre_servidor, 
    t1.plantilla as plantilla, 
    (SELECT tt1.descripcion 
     FROM sku_precios tt1 
     WHERE tt1.id_sku_precio = 'VM --') as c_sv, 
    t1.sv_pvp as c_sv_pvp, 
    t1.sv_pvp_dist as c_sv_pvp_dist, 
    (SELECT tt1.descripcion 
     FROM sku_precios tt1 
     WHERE tt1.id_sku_precio = 'VCPU --') as c_cpu, 
    t1.cpu_cant as c_cpu_cant, 
    t1.cpu_pvp as c_cpu_pvp, 
    t1.cpu_pvp_dist as c_cpu_pvp_dist, 
    (SELECT tt1.descripcion 
     FROM sku_precios tt1 
     WHERE tt1.id_sku_precio = 'RAM --') as c_ram, 
    t1.ram_cant as c_ram_cant, 
    t1.ram_pvp as c_ram_pvp, 
    t1.ram_pvp_dist as c_ram_pvp_dist, 
    aletras(t1.ram_cant) as c_ram_unidad, 
    (SELECT tt1.descripcion 
     FROM sku_precios tt1 
     WHERE tt1.id_sku_precio = 'HDSTD --') as c_hdd, 
    t1.hdd_cant as c_hdd_cant, 
    t1.hdd_pvp as c_hdd_pvp, 
    t1.hdd_pvp_dist as c_hdd_pvp_dist, 
    aletras(t1.hdd_cant) as c_hdd_unidad, 
    (SELECT tt1.descripcion 
     FROM sku_precios tt1 
     WHERE tt1.id_sku_precio = 'IPP --') as c_ip, 
==> (t1.ip_pvpt1.ip_polled_pvpt1.ip_custom_pvp) as c_ip_pvp, 
    (t1.ip_pvp_distt1.ip_polled_pvp_distt1.ip_custom_pvp_dist) as c_ip_pvp_dist, 
    t1.id_servidor_virtual as parent_id, 
    (SELECT COUNT(t2.id_servicio_adicional) 
     FROM servicios_adicionales t2 
     WHERE t2.id_servidor_virtual = t1.id_servidor_virtual) as cant_sa, 
    DATE_FORMAT(t2.f_inicio_contrato, '%d-%m-%Y') as f_inicio_contrato, 
    DATE_FORMAT(t2.f_fin_contrato, '%d-%m-%Y') as f_fin_contrato, 
    (SELECT tt2.n_pedido 
     FROM servidores_virtuales tt1 
     INNER JOIN pedidos tt2 ON tt2.id_pedido = tt1.id_pedido 
     WHERE tt1.id_servidor_virtual = t2.id_pedido_actualizado) as n_pedido_actualizado, 
    (SELECT t3.descuento 
     FROM albaranes t3 
     WHERE t3.id_pedido = t1.id_pedido 
     AND t3.id_cuenta_emisora = 2) as descuento 
FROM servidores_virtuales t1 
LEFT OUTER JOIN pedidos t2 ON t2.id_pedido = t1.id_pedido 
WHERE t1.id_pedido = 230; 

的错误是:

ERR] 1064 - 你有一个错误你的SQL语法;检查对应于你的MySQL服务器版本的手册正确的语法使用近“.ip_custom_pvp)为c_ip_pvp,”在第32行

线32标有==>

你能帮我吗?非常感谢

+1

这看起来很腥''t1.ip_pvpt1.ip_polled_pvpt1.ip_custom_pvp'以及't1.ip_pvp_distt1.ip_polled_pvp_distt1.ip_custom_pvp_dist'在下一行。 – Maku

+3

你可以告诉我们哪一行是32行,但这会破坏我们自己的喜悦。 –

+0

@阿尔瓦罗,这种“澳大利亚”幽默感(这是一种恭维话)。我已经明确指出第32行:-) – paxdiablo

回答

1
t1.ip_pvpt1.ip_polled_pvpt1.ip_custom_pvp 

你确定你不应该有一些其他的角色在里面,例如像+-标志?

这在我看来,这三个独立列:

t1.ip_pvp t1.ip_polled_pvp t1.ip_custom_pvp 

应在一些其他的方式不仅仅是:-)

,唯一不是消除它们之间的空白被加入顺便说一句,只是我第一次接受。下面一行也有一个。

原因MySQL的抱怨是,你显然是在填充对象名称(因此三宁两个级别),其具有 .人物打破了schema.object命名标准。