Comunidad de diseño web y desarrollo en internet online

Ejecutar la consulta

Citar            
MensajeEscrito el 21 Abr 2010 01:43 am
buenas...como andan???

hice una clasesita con una consulta adentro pero no me funciona desde el php, sin embargo si uso un programa como EMS SQL me devuelve los datos sin problemas.

El archivo php con la consulta es:

Código PHP :

<?php

$hostname = "localhost";
$database = "sist_gestion2";
$username = "root";
$password = "";
$link = mysql_connect($hostname, $username, $password) or trigger_error(mysql_error(),E_USER_ERROR); 
mysql_select_db($database, $link)or die("Error en conexion a BD principal");

$sql = "CREATE TEMPORARY TABLE brutas(
               SELECT v.BILLING_ID,v.date, v.BRANCH_ID, sum(pr.PRICE*lv.QUANTITY) bruto   
                  FROM billing v
                     INNER JOIN billing_detail lv
                        ON v.BILLING_ID = lv.BILLING_ID
                     INNER JOIN products p
                        ON lv.PRODUCT_ID=p.product_id
                     INNER JOIN prices pr
                        ON pr.PRODUCT_ID=p.product_id
                  WHERE v.REGION='EAST' AND v.BRANCH_ID=2
                  AND v.DATE BETWEEN '2006-01-01' AND '2009-08-31'
                  AND pr.DATE= (SELECT MAX(pre.DATE)
                                 FROM prices pre
                              WHERE pre.DATE <= v.DATE AND p.product_id = pre.product_id)
            group by v.BILLING_ID);

SELECT brutas.billing_id, brutas.date, brutas.branch_id sucursal, brutas.bruto,
                  IF( brutas.bruto >= discounts.TOTAL_BILLING,brutas.bruto * (1 - discounts.PERCENTAGE/100), brutas.bruto) neto
                  FROM brutas JOIN discounts
               WHERE discounts.from = (SELECT MAX(des.from)
                  FROM discounts des
               WHERE des.FROM<= brutas.DATE));";
$resultados = mysql_query($sql, $link) or die(mysql_error());

print_r($resultados);
echo($resultados);

mysql_close($link);

?>


Al ejecutarlo me da el error:

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 'DROP TEMPORARY TABLE IF EXISTS netas; CREATE TEMPORARY TABLE brutas( ' at line 2


Si pueden ayudarme se los agradeceria.

Saludo

Por bubudrc

Claber

591 de clabLevel

1 tutorial

 

mayo 2006

msie8
Citar            
MensajeEscrito el 21 Abr 2010 03:33 am
Ejecuta cada consulta por separado, es decir, cada consulta en un mysql_query.

saludos

Por Maikel

BOFH

5575 de clabLevel

22 tutoriales
5 articulos

Genero:Masculino   Team Cristalab

Claber de baja indefinida

firefox
Citar            
MensajeEscrito el 22 Abr 2010 01:58 am
Como tendría que hace eso q me decis??' o sea, como modifico ese php para generara las 3 querys por separado y q me devuelva el resultado???


desde ya gracias.
saludos

Por bubudrc

Claber

591 de clabLevel

1 tutorial

 

mayo 2006

chrome
Citar            
MensajeEscrito el 22 Abr 2010 01:00 pm

Código PHP :

<?php
...
$sql = "CREATE TEMPORARY TABLE brutas( 
               SELECT v.BILLING_ID,v.date, v.BRANCH_ID, sum(pr.PRICE*lv.QUANTITY) bruto    
                  FROM billing v 
                     INNER JOIN billing_detail lv 
                        ON v.BILLING_ID = lv.BILLING_ID 
                     INNER JOIN products p 
                        ON lv.PRODUCT_ID=p.product_id 
                     INNER JOIN prices pr 
                        ON pr.PRODUCT_ID=p.product_id 
                  WHERE v.REGION='EAST' AND v.BRANCH_ID=2 
                  AND v.DATE BETWEEN '2006-01-01' AND '2009-08-31' 
                  AND pr.DATE= (SELECT MAX(pre.DATE) 
                                 FROM prices pre 
                              WHERE pre.DATE <= v.DATE AND p.product_id = pre.product_id) 
            group by v.BILLING_ID); "; 
$resultados = mysql_query($sql, $link) or die(mysql_error()); 

$sql2 = "SELECT brutas.billing_id, brutas.date, brutas.branch_id sucursal, brutas.bruto, 
                  IF( brutas.bruto >= discounts.TOTAL_BILLING,brutas.bruto * (1 - discounts.PERCENTAGE/100), brutas.bruto) neto 
                  FROM brutas JOIN discounts 
               WHERE discounts.from = (SELECT MAX(des.from) 
                  FROM discounts des 
               WHERE des.FROM<= brutas.DATE));";

$resultados2 = mysql_query($sql2, $link) or die(mysql_error()); 

....

?>

¿Cual es la duda?

saludos

Por Maikel

BOFH

5575 de clabLevel

22 tutoriales
5 articulos

Genero:Masculino   Team Cristalab

Claber de baja indefinida

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.