Query a 4 bases de datos
Publicado por Isaac Daniel (8 intervenciones) el 10/10/2013 02:28:34
Buenas tardes tengan todos los de LaWebDelProgramador.
Pues resulta que quiero realizar un Reporte de Ventas en SQL server 2005, pero tengo el inconveniente de que os datos se encuentran en 4 diferentes bases de datos.
Desconosco el porque cuando se implemento el sistema crearon 4 bases de datos, tres de ellas con las mismas tablas.
De una manera muy general voy a describir mi entorno de trabajo
BDCatalogos
BDoficina
BDoficina2
BDoficina3
El reporte que yo requiero lo pude realizar uniendo BDCatalogos con la BDoficina1, pero no logro unir las otras dos BD para que me salga un reporte completo de todas las sucursales a la que se da informacion.
La consulta que hasta ahora tengo es la siguiente:
me devuelve esto
Pero solo de unas cuantas sucursales ya que las demas estan en las otras dos bases de datos (BDoficina2 y BDoficina3)
De antemano agradesco su ayuda.
Pues resulta que quiero realizar un Reporte de Ventas en SQL server 2005, pero tengo el inconveniente de que os datos se encuentran en 4 diferentes bases de datos.
Desconosco el porque cuando se implemento el sistema crearon 4 bases de datos, tres de ellas con las mismas tablas.
De una manera muy general voy a describir mi entorno de trabajo
BDCatalogos
BDoficina
BDoficina2
BDoficina3
El reporte que yo requiero lo pude realizar uniendo BDCatalogos con la BDoficina1, pero no logro unir las otras dos BD para que me salga un reporte completo de todas las sucursales a la que se da informacion.
La consulta que hasta ahora tengo es la siguiente:
1
2
3
4
5
6
7
select LEFT (REPLICATE ('',30) + CONVERT (CHAR,catsucursal.descripcion ,1),30) as SUC ,Convert(varchar(10),ventasdetalle.fechavta,20) as fecha,ventasdetallet.folio as FOLIO, ventasdetalle.codigoean as EAN,cat_produ.descripcion as DESCRIPCION,cat_familias.descripcion as FAMILIA, ventasdetalle.cantvend as CANTIDADVENDIDA, ventasdetalle.cantdev as CANTIDADDEVUELTA,((sum(ventasdetalle.cantvend))-(sum(ventasdetalle.cantdev))) as PIEZAS,((ventasdetalle.cantvend) * ((ventasdetalle.preciounit + ventasdetalle.impteiva)-imptedescto)) as IMPORTE
from BDofficina.DBO.ventasdetalle
inner join BDcatalogos.DBO.cat_produ on vendet.codigoint=catproductos.codigo
inner join BDcatalogos.DBO.cat_familias on cat_familias.codigo1=cat_produ.codfam1
inner join BDcatalogos.DBO.cat_sucursales on cat_sucursales.codigo=vendet.farmacia And Cat_Familias.Codigo2 = Cat_Produ.CodFam2 And Cat_Familias.Codigo3 = Cat_Produ.CodFam3 And Cat_Familias.Codigo4 = Cat_Produ.CodFam4
WHERE ventasdetalle.fechavta between '2013-01-01' and Convert(char(10), getdate()-1, 20)
group by catsucursales.descripcion,vendet.fechavtasinhora, vendet.folio, vendet.codigoean, cat_produ.descripcion, cat_familias.descripcion , ventasdetalle.preciounit, ventasdetalle.impteiva, imptedescto,ventasdetalle.cliente,ventasdetalle.cant_dev, ventasdetalle.cant_vend
me devuelve esto
1
2
3
SUC fecha FOLIO EAN DESCR FAMILIA CANTVEN CANTDEV PIEZAS IMPORTE
------------------------------ ---------- --------------- ------------- --------------------------- ----------------- -------- -------- -------- ---------
001 AZTECA 2013-01-01 V00020100375699 752601547 BOCA DALUX DESCH C/10 ACCESORIOS 1.0000 0.0000 1.0000 7.0000
Pero solo de unas cuantas sucursales ya que las demas estan en las otras dos bases de datos (BDoficina2 y BDoficina3)
De antemano agradesco su ayuda.
Valora esta pregunta
0