Select anidado funciona en mysql 5 pero no en 4
Publicado por Daniela (1 intervención) el 30/03/2007 04:09:57
Hola !!! Espero que algun alma caritativa me pueda ayudar. Resulta que estoy desarrollando un sistema en php y mysql. El sistema está online y además para hacer las pruebas uso una instalación local (en mi pc). El tema es el siguiente: en el servidor, la versión de mysql es la 4, y en mi pc tengo mysql 5. Y hay una consulta con un select anidado que estoy dando vueltas hace 2 días y no puedo lograr que funcione en el servidor (mysql 4), pero sin embargo sí funciona en mi pc, con mysql 5…
Estas son las opciones que probé:
1) SELECT s2.company_id, s2.pdr_id ,
sum( s2.bag_to - s2.bag_from + 1 ) "tot_env_rec"
FROM sent_bags s2
WHERE ( SELECT count (*)
FROM received_bags r2
WHERE r2.bag_id between s2.bag_from and s2.bag_to) <= 2
GROUP BY s2.company_id, s2.pdr_id
2) SELECT s5.company_id, s5.pdr_id ,
sum( s5.bag_to - s5.bag_from + 1 ) 'tot_env_rec'
FROM (SELECT s2.company_id, s2.pdr_id , s2.bag_from , s2.bag_to
FROM sent_bags s2, received_bags r2
WHERE r2.bag_id BETWEEN s2.bag_from AND s2.bag_to
GROUP BY s2.company_id, s2.pdr_id , s2.bag_from , s2.bag_to ) s5
GROUP BY s5.company_id, s5.pdr_id ;
3) SELECT s2.company_id, s2.pdr_id ,
sum( s2.bag_to - s2.bag_from + 1 ) 'tot_env_rec'
FROM sent_bags s2
WHERE ( SELECT count (*)
FROM received_bags r2
WHERE r2.bag_id between s2.bag_from and s2.bag_to) > 1
GROUP BY s2.company_id, s2.pdr_id ;
El error que da en mysql 4 es:
#1064 - You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'SELECT COUNT( * ) FROM received_bags r2 WHERE r2 . bag_id >=
Mil gracias por adelantado!!!
Salu2,
Daniela :-)
Estas son las opciones que probé:
1) SELECT s2.company_id, s2.pdr_id ,
sum( s2.bag_to - s2.bag_from + 1 ) "tot_env_rec"
FROM sent_bags s2
WHERE ( SELECT count (*)
FROM received_bags r2
WHERE r2.bag_id between s2.bag_from and s2.bag_to) <= 2
GROUP BY s2.company_id, s2.pdr_id
2) SELECT s5.company_id, s5.pdr_id ,
sum( s5.bag_to - s5.bag_from + 1 ) 'tot_env_rec'
FROM (SELECT s2.company_id, s2.pdr_id , s2.bag_from , s2.bag_to
FROM sent_bags s2, received_bags r2
WHERE r2.bag_id BETWEEN s2.bag_from AND s2.bag_to
GROUP BY s2.company_id, s2.pdr_id , s2.bag_from , s2.bag_to ) s5
GROUP BY s5.company_id, s5.pdr_id ;
3) SELECT s2.company_id, s2.pdr_id ,
sum( s2.bag_to - s2.bag_from + 1 ) 'tot_env_rec'
FROM sent_bags s2
WHERE ( SELECT count (*)
FROM received_bags r2
WHERE r2.bag_id between s2.bag_from and s2.bag_to) > 1
GROUP BY s2.company_id, s2.pdr_id ;
El error que da en mysql 4 es:
#1064 - You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'SELECT COUNT( * ) FROM received_bags r2 WHERE r2 . bag_id >=
Mil gracias por adelantado!!!
Salu2,
Daniela :-)
Valora esta pregunta


0