
Conexion a varias bases de datos para mostrar datos, como???
Publicado por Cecilia Hrz (10 intervenciones) el 01/09/2014 19:58:27
Hola a todos !!
Estoy pidiendo de su ayuda para hacer lo siguiente.
Hacer un reporte en el que me de las ventas de diferentes tiendas (3 BBDD ) con sus sucursales. Cada tienda es una base de datos :s Y aparte tengo otra BD General en donde tengo mi inventario. Me sale muy bien cuando consulto a dos bases de datos pero si quiero las demás, ahi me atoro.
Por ejemplo, Tengo mi filtro y selecciono la empresa (base de datos):
Empresa: Salud
Sucursal:------------
Marca : Shampss
Articulo: --------------
La consulta es algo asi:
SELECT Vta.idArticulo, Inv.nombre, Inv.descripcion, VtaDet.precio, VtaDet.cantidad, Suc.sucursal
FROM $bdatos.Ventas Vta
Left join $bdatos.VentasDet VtaDet ...
Left Join BDGeneral.InventarioArt Inv ....
Left Join BDGeneral.Sucursales Suc
WHERE Suc.sucursal=$sucursal and Inv.marca=marca
Me muestra las ventas de toda la marca Shampss de las 4 sucursales de esa empresa . Eso esta bien.
Pero ahora lo que quiero, es que sin poner la Empresa me muestre todas las sucursales de las 3 empresas (bases) que tengo.
Base de datos/Empresa: 1, 2, 3
Base datos General: En donde tengo una tabla llamada Sucursales, ahi tengo las 12 sucursales guardadas.
No se si tengo que crear mas conexiones. O hacer un select con todas mis sucursales o nose... Tengo esto y no me sale:
Alguna idea que me puedan dar y lo desarrollo. Solo que no se por donde empezar para cambiarlo a como lo necesito. Muestro mis resultados en una tabla y para eso, uso JSON.
Graciass si lo leen! :) Por favor comentenme si falta algo que no quede claro.
Estoy pidiendo de su ayuda para hacer lo siguiente.
Hacer un reporte en el que me de las ventas de diferentes tiendas (3 BBDD ) con sus sucursales. Cada tienda es una base de datos :s Y aparte tengo otra BD General en donde tengo mi inventario. Me sale muy bien cuando consulto a dos bases de datos pero si quiero las demás, ahi me atoro.
Por ejemplo, Tengo mi filtro y selecciono la empresa (base de datos):
Empresa: Salud
Sucursal:------------
Marca : Shampss
Articulo: --------------
La consulta es algo asi:
SELECT Vta.idArticulo, Inv.nombre, Inv.descripcion, VtaDet.precio, VtaDet.cantidad, Suc.sucursal
FROM $bdatos.Ventas Vta
Left join $bdatos.VentasDet VtaDet ...
Left Join BDGeneral.InventarioArt Inv ....
Left Join BDGeneral.Sucursales Suc
WHERE Suc.sucursal=$sucursal and Inv.marca=marca
Me muestra las ventas de toda la marca Shampss de las 4 sucursales de esa empresa . Eso esta bien.
Pero ahora lo que quiero, es que sin poner la Empresa me muestre todas las sucursales de las 3 empresas (bases) que tengo.
Base de datos/Empresa: 1, 2, 3
Base datos General: En donde tengo una tabla llamada Sucursales, ahi tengo las 12 sucursales guardadas.
No se si tengo que crear mas conexiones. O hacer un select con todas mis sucursales o nose... Tengo esto y no me sale:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
if ( !isset($filtros['nEmpresa'])){
$nEmpresa=' '; //No selecciono empresa y selecciono algun otro filtro.
$selEmpresas="SELECT Empr.nEmpresa, Empr.cNombre, Empr.cBaseDatos, Scr.nSucursal,
Scr.cNombre AS cSucursal,
FROM JRS.SstSucursales Scr
LEFT JOIN JRS.SstEmpresas Empr ON Empr.nEmpresa=Scr.nEmpresa
LEFT JOIN JRS.FctParametros Prm ON Prm.nParametro=1
WHERE Scr.lBorrado=0 AND Scr.nEmpresa!=1 AND Empr.cBaseDatos!='' ";
while ($regEmpresa = $queryEmp->fetch_object()){
if (!isset($arrScr[$regEmp->nSucursal]))
{
$arrScr[$regEmp->nSucursal] = array('nEmpresa' =>0, 'cBaseDatos'=>0, 'cNombre'=>0 , 'cSucursal'=>0);
$arrScr[$regEmp->nSucursal]['cBaseDatos']=$regEmp->cBaseDatos;
$arrScr[$regEmp->nSucursal]['cSucursal']=$regEmp->cSucursal;
}
}
foreach ($arrScr as $clave=>$valor)
{
$sucursal=$clave;
$baseDatos=$arrScr[$clave]['cBaseDatos'];
$selRep = "SELECT bla, bla
FROM $baseDatos.Venta Vta
LEFT JOIN $baseDatos.VVentaDet VtaDet ON VtaDet.nPuntoVenta=Vta.nPuntoVenta
LEFT JOIN BDGeneral.InvArticulos Art ON ArtPrs.nArticuloPresenta=VtaDet.nArticuloPresenta
LEFT JOIN BDGeneral.SstSucursales Scr ON Scr.nSucursal=Vta.nSucursal
....
.....
WHERE Vta.Sucursal=$filtros //Puede ser la marca, o articulo
GROUP BY Vta.nSucursal,VtaDet.nArticuloPresenta
ORDER BY nSucursal, nArticulo,nArticuloPresenta";
$_SESSION['debug'][] = "SELECT : " . $selRep;
$qryOpera=$dbCon->query($selRep);
//empiezo a poner codigo para JSON
$strReporte = ', "agrupar":1, "campos": { ... },"valores":[' ;
else{
//Se lleno el filtro de empresa
$nEmpresa=$filtros['nEmpresa'];.
Alguna idea que me puedan dar y lo desarrollo. Solo que no se por donde empezar para cambiarlo a como lo necesito. Muestro mis resultados en una tabla y para eso, uso JSON.
Graciass si lo leen! :) Por favor comentenme si falta algo que no quede claro.
Valora esta pregunta


0