Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Ya no puedo modificar mi query

Estas en el tema de Ya no puedo modificar mi query en el foro de Mysql en Foros del Web. Que onda, tengo un query con variables, pero al momento de pasarlo a php tengo que manejarlo como valores default para luego usar variables recibidas ...
  #1 (permalink)  
Antiguo 10/11/2011, 18:33
 
Fecha de Ingreso: febrero-2010
Mensajes: 19
Antigüedad: 14 años, 2 meses
Puntos: 0
Ya no puedo modificar mi query

Que onda, tengo un query con variables, pero al momento de pasarlo a php tengo que manejarlo como valores default para luego usar variables recibidas por post, el problema es que ya no se como quitarle lo de las variables F_Fecha_Inicial y F_Fecha_Fin... mi query es este:

Código:
select
cast(substring(grupos_lineas.nombre from 1 for 3) as char(3)) as cve_depto,
cast(grupos_lineas.nombre  as char(99)) as nom_depto,
cast(claves_proveedores.clave_prov  as char(20)) as cve_prov,
cast(proveedores.nombre  as char(100)) as nom_prov,
cast(CA2.clave_articulo  as char(20)) as sku,
cast(substring(articulos.nombre from 1 for 30) as char(30)) as nombre,
cast(doctos_pv_det.unidades as double precision) as unidadess,
cast(doctos_pv_det.precio_total_neto as double precision) as precio_neto
from libres_articulos
    inner join articulos on (libres_articulos.articulo_id = articulos.articulo_id)
    inner join doctos_pv_det on (articulos.articulo_id = doctos_pv_det.articulo_id)
    inner join doctos_pv on (doctos_pv_det.docto_pv_id = doctos_pv.docto_pv_id)
    inner join claves_articulos CA1 on articulos.articulo_id =CA1.articulo_id and CA1.rol_clave_art_id = 18
    inner join claves_articulos CA2 on articulos.articulo_id =CA2.articulo_id and CA2.rol_clave_art_id = 17
    inner join claves_proveedores on (claves_proveedores.clave_prov = libres_articulos.cve_prov)
    inner join proveedores on (proveedores.proveedor_id = claves_proveedores.proveedor_id)
    inner join lineas_articulos on (lineas_articulos.linea_articulo_id = articulos.linea_articulo_id)
    inner join grupos_lineas on (grupos_lineas.grupo_linea_id = lineas_articulos.grupo_linea_id)
where doctos_pv.tipo_docto = 'V' and doctos_pv.estatus <> 'C'
and doctos_pv.fecha between :F_Fecha_Inicial and :F_Fecha_Fin
union all
select 
cast(substring(grupos_lineas.nombre from 1 for 3) as char(3)) as cve_depto,
cast(grupos_lineas.nombre  as char(99)) as nom_depto,
cast(claves_proveedores.clave_prov  as char(20)) as cve_prov,
cast(proveedores.nombre  as char(100)) as nom_prov,
cast(CA2.clave_articulo  as char(20)) as sku,
cast(substring(articulos.nombre from 1 for 30) as char(30)) as nombre,
cast(doctos_pv_det.unidades*-1 as double precision) as unidadess,
cast(doctos_pv_det.precio_total_neto*-1 as double precision) as precio_neto
from libres_articulos
    inner join articulos on (libres_articulos.articulo_id = articulos.articulo_id)
    inner join doctos_pv_det on (articulos.articulo_id = doctos_pv_det.articulo_id)
    inner join doctos_pv on (doctos_pv_det.docto_pv_id = doctos_pv.docto_pv_id)
    inner join claves_articulos CA1 on articulos.articulo_id =CA1.articulo_id and CA1.rol_clave_art_id = 18
    inner join claves_articulos CA2 on articulos.articulo_id =CA2.articulo_id and CA2.rol_clave_art_id = 17
    inner join claves_proveedores on (claves_proveedores.clave_prov = libres_articulos.cve_prov)
    inner join proveedores on (proveedores.proveedor_id = claves_proveedores.proveedor_id)
    inner join lineas_articulos on (lineas_articulos.linea_articulo_id = articulos.linea_articulo_id)
    inner join grupos_lineas on (grupos_lineas.grupo_linea_id = lineas_articulos.grupo_linea_id)
where doctos_pv.tipo_docto = 'D' and doctos_pv.estatus <> 'C'
and doctos_pv.fecha between :F_Fecha_Inicial and :F_Fecha_Fin
order by 1
si alguien me puede ayudar se lo agradeceria mucho
  #2 (permalink)  
Antiguo 11/11/2011, 01:57
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Ya no puedo modificar mi query

Para que, esos cast?

Si quieres substituir esas variables por variables php substituye : por $ y si tienes la variables en el script php te funcionara con los valores que tengan... recuerda que el formato de fecha que tiene que llegar es YYYY-mm-dd....


Código PHP:
Ver original
  1. ...."select
  2. cast(substring(grupos_lineas.nombre from 1 for 3) as char(3)) as cve_depto,
  3. cast(grupos_lineas.nombre  as char(99)) as nom_depto,
  4. cast(claves_proveedores.clave_prov  as char(20)) as cve_prov,
  5. cast(proveedores.nombre  as char(100)) as nom_prov,
  6. cast(CA2.clave_articulo  as char(20)) as sku,
  7. cast(substring(articulos.nombre from 1 for 30) as char(30)) as nombre,
  8. cast(doctos_pv_det.unidades as double precision) as unidadess,
  9. cast(doctos_pv_det.precio_total_neto as double precision) as precio_neto
  10. from libres_articulos
  11.    inner join articulos on (libres_articulos.articulo_id = articulos.articulo_id)
  12.    inner join doctos_pv_det on (articulos.articulo_id = doctos_pv_det.articulo_id)
  13.    inner join doctos_pv on (doctos_pv_det.docto_pv_id = doctos_pv.docto_pv_id)
  14.    inner join claves_articulos CA1 on articulos.articulo_id =CA1.articulo_id and CA1.rol_clave_art_id = 18
  15.    inner join claves_articulos CA2 on articulos.articulo_id =CA2.articulo_id and CA2.rol_clave_art_id = 17
  16.    inner join claves_proveedores on (claves_proveedores.clave_prov = libres_articulos.cve_prov)
  17.    inner join proveedores on (proveedores.proveedor_id = claves_proveedores.proveedor_id)
  18.    inner join lineas_articulos on (lineas_articulos.linea_articulo_id = articulos.linea_articulo_id)
  19.    inner join grupos_lineas on (grupos_lineas.grupo_linea_id = lineas_articulos.grupo_linea_id)
  20. where doctos_pv.tipo_docto = 'V' and doctos_pv.estatus <> 'C'
  21. and doctos_pv.fecha between '$F_Fecha_Inicial' and '$F_Fecha_Fin'
  22. union all
  23. select
  24. cast(substring(grupos_lineas.nombre from 1 for 3) as char(3)) as cve_depto,
  25. cast(grupos_lineas.nombre  as char(99)) as nom_depto,
  26. cast(claves_proveedores.clave_prov  as char(20)) as cve_prov,
  27. cast(proveedores.nombre  as char(100)) as nom_prov,
  28. cast(CA2.clave_articulo  as char(20)) as sku,
  29. cast(substring(articulos.nombre from 1 for 30) as char(30)) as nombre,
  30. cast(doctos_pv_det.unidades*-1 as double precision) as unidadess,
  31. cast(doctos_pv_det.precio_total_neto*-1 as double precision) as precio_neto
  32. from libres_articulos
  33.    inner join articulos on (libres_articulos.articulo_id = articulos.articulo_id)
  34.    inner join doctos_pv_det on (articulos.articulo_id = doctos_pv_det.articulo_id)
  35.    inner join doctos_pv on (doctos_pv_det.docto_pv_id = doctos_pv.docto_pv_id)
  36.    inner join claves_articulos CA1 on articulos.articulo_id =CA1.articulo_id and CA1.rol_clave_art_id = 18
  37.    inner join claves_articulos CA2 on articulos.articulo_id =CA2.articulo_id and CA2.rol_clave_art_id = 17
  38.    inner join claves_proveedores on (claves_proveedores.clave_prov = libres_articulos.cve_prov)
  39.    inner join proveedores on (proveedores.proveedor_id = claves_proveedores.proveedor_id)
  40.    inner join lineas_articulos on (lineas_articulos.linea_articulo_id = articulos.linea_articulo_id)
  41.    inner join grupos_lineas on (grupos_lineas.grupo_linea_id = lineas_articulos.grupo_linea_id)
  42. where doctos_pv.tipo_docto = 'D' and doctos_pv.estatus <> 'C'
  43. and doctos_pv.fecha between '$F_Fecha_Inicial' and '$F_Fecha_Fin'
  44. order by 1;"
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.

Última edición por quimfv; 14/11/2011 a las 07:46
  #3 (permalink)  
Antiguo 11/11/2011, 13:39
 
Fecha de Ingreso: febrero-2010
Mensajes: 19
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: Ya no puedo modificar mi query

gracias, eso ya lo habia intentado, el problema es que el query es dinamico, y ya no se ni que hice para hacerlo dinamico, me hecha este error Warning: ibase_query() [function.ibase-query]: Dynamic SQL Error SQL error code = -104 Token unknown - line 22, column 30 '2011-08-01' in C:\xampp\htdocs\Inventario_beta\80-20.php on line 53 :/

el php esta asi:

Código PHP:
$F_Fecha_Inicial="2011-08-01";
$F_Fecha_Fin="2011-11-01";

$qry "
select
cast(substring(grupos_lineas.nombre from 1 for 3) as char(3)) as cve_depto,
cast(grupos_lineas.nombre  as char(99)) as nom_depto,
cast(claves_proveedores.clave_prov  as char(20)) as cve_prov,
cast(proveedores.nombre  as char(100)) as nom_prov,
cast(CA2.clave_articulo  as char(20)) as sku,
cast(substring(articulos.nombre from 1 for 30) as char(30)) as nombre,
cast(doctos_pv_det.unidades as double precision) as unidadess,
cast(doctos_pv_det.precio_total_neto as double precision) as precio_neto
from libres_articulos
    inner join articulos on (libres_articulos.articulo_id = articulos.articulo_id)
    inner join doctos_pv_det on (articulos.articulo_id = doctos_pv_det.articulo_id)
    inner join doctos_pv on (doctos_pv_det.docto_pv_id = doctos_pv.docto_pv_id)
    inner join claves_articulos CA1 on articulos.articulo_id =CA1.articulo_id and CA1.rol_clave_art_id = 18
    inner join claves_articulos CA2 on articulos.articulo_id =CA2.articulo_id and CA2.rol_clave_art_id = 17
    inner join claves_proveedores on (claves_proveedores.clave_prov = libres_articulos.cve_prov)
    inner join proveedores on (proveedores.proveedor_id = claves_proveedores.proveedor_id)
    inner join lineas_articulos on (lineas_articulos.linea_articulo_id = articulos.linea_articulo_id)
    inner join grupos_lineas on (grupos_lineas.grupo_linea_id = lineas_articulos.grupo_linea_id)
where doctos_pv.tipo_docto = 'V' and doctos_pv.estatus <> 'C'
and doctos_pv.fecha between :'$F_Fecha_Inicial' and :'$F_Fecha_Fin'
union all
select 
cast(substring(grupos_lineas.nombre from 1 for 3) as char(3)) as cve_depto,
cast(grupos_lineas.nombre  as char(99)) as nom_depto,
cast(claves_proveedores.clave_prov  as char(20)) as cve_prov,
cast(proveedores.nombre  as char(100)) as nom_prov,
cast(CA2.clave_articulo  as char(20)) as sku,
cast(substring(articulos.nombre from 1 for 30) as char(30)) as nombre,
cast(doctos_pv_det.unidades*-1 as double precision) as unidadess,
cast(doctos_pv_det.precio_total_neto*-1 as double precision) as precio_neto
from libres_articulos
    inner join articulos on (libres_articulos.articulo_id = articulos.articulo_id)
    inner join doctos_pv_det on (articulos.articulo_id = doctos_pv_det.articulo_id)
    inner join doctos_pv on (doctos_pv_det.docto_pv_id = doctos_pv.docto_pv_id)
    inner join claves_articulos CA1 on articulos.articulo_id =CA1.articulo_id and CA1.rol_clave_art_id = 18
    inner join claves_articulos CA2 on articulos.articulo_id =CA2.articulo_id and CA2.rol_clave_art_id = 17
    inner join claves_proveedores on (claves_proveedores.clave_prov = libres_articulos.cve_prov)
    inner join proveedores on (proveedores.proveedor_id = claves_proveedores.proveedor_id)
    inner join lineas_articulos on (lineas_articulos.linea_articulo_id = articulos.linea_articulo_id)
    inner join grupos_lineas on (grupos_lineas.grupo_linea_id = lineas_articulos.grupo_linea_id)
where doctos_pv.tipo_docto = 'D' and doctos_pv.estatus <> 'C'
and doctos_pv.fecha between :'$F_Fecha_Inicial' and :'$F_Fecha_Fin'
order by 1"

  #4 (permalink)  
Antiguo 11/11/2011, 13:46
 
Fecha de Ingreso: febrero-2010
Mensajes: 19
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: Ya no puedo modificar mi query

los cast estan ya que asi trabaja el programa, estoy manipulando la base de datos de un programa, ampliando sus opciones, y todos los datos estan mezclados en varias tablas
  #5 (permalink)  
Antiguo 11/11/2011, 14:47
 
Fecha de Ingreso: febrero-2010
Mensajes: 19
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: Ya no puedo modificar mi query

ya quedo, me falto quitar los puntos, muchas gracias
  #6 (permalink)  
Antiguo 14/11/2011, 07:45
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Ya no puedo modificar mi query

Cita:
...substituye : por $...
eso
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.

Etiquetas: php, query
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:37.