Ver Mensaje Individual
  #2 (permalink)  
Antiguo 20/03/2013, 16:04
leonardo_josue
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 4 meses
Puntos: 447
Respuesta: Consulta a BD con distintos tipos de IVA

Hola curura:

Antes que nada bienvenido al foro, espero que te sea de utilidad. Ahora si, pasando a tu pregunta, sin datos de tu modelo de BD es imposible entender lo que pones... dime tú si realmente crees que podamos saber de qué estás hablando es más, me costaría pensar que tú mismo puedas tratar de entender qué es lo que que hace o pretende hacer tu consulta.

En lugar de eso tenemos que partir desde el inicio, postea la estructura de tus tablas, pon algunos datos de ejemplo para cada uno de ellos y dinos a partir de esos datos qué es lo que pretendes obtener como resultado. la verdad no creo
que haya necesidad de hacer tantas subconsultas como lo pretendes hacer, pero para darte una mejor respuesta necesitamos más datos.

Como recomendación adicional, trata de dar formato a tus consultas para que sean más legibles, por ejemplo en lugar de poner esto:

Código:
SELECT Sum(ps_order_detail.product_price * ps_order_detail.product_quantity)
FROM ps_orders INNER JOIN ps_order_detail ON ps_orders.id_order =
ps_order_detail.id_order INNER JOIN ps_customer ON ps_customer.id_customer
= ps_orders.id_customer AND ps_customer.secure_key = ps_orders.secure_key
WHERE ps_orders.id_lang = 3 AND ps_order_detail.id_order = checkorder.id_order
AND ps_order_detail.tax_rate = 4
Pon la consulta más o menos así:

Código MySQL:
Ver original
  1.   SUM(ps_order_detail.product_price * ps_order_detail.product_quantity)
  2. FROM ps_orders
  3. INNER JOIN ps_order_detail ON
  4.   ps_orders.id_order = ps_order_detail.id_order
  5. INNER JOIN ps_customer ON
  6.   ps_customer.id_customer = ps_orders.id_customer AND
  7.   ps_customer.secure_key = ps_orders.secure_key
  8.   ps_orders.id_lang = 3 AND
  9.   ps_order_detail.id_order = checkorder.id_order AND
  10.   ps_order_detail.tax_rate = 4

Es decir, trata de distinguir cada parte, el SELECT del FROM, el FROM de los JOIN's y los JOIN's del WHERE... así es mas sencillo tratar de entender lo que estás haciendo... Utiliza las etiquetas marcadas como Highligth para darle formato a tu código...

Alguna vez un profesor me dijo que cuando se hacen consultas como las que pones sólo Dios y Tú entienden lo que hacen, pero una semana después sólo Dios las entiende, porque ni tú tienes idea de lo que hiciste.

Saludos
Leo.