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

Obtener datos de dos tablas con condiciones distintas

Estas en el tema de Obtener datos de dos tablas con condiciones distintas en el foro de Mysql en Foros del Web. Buenas foro. Necesito hacer una consulta para obtener los datos de dos tablas que me guardan datos de facturacion la situacion es que necesito agrupar ...
  #1 (permalink)  
Antiguo 25/02/2013, 09:48
Avatar de jandrogdz  
Fecha de Ingreso: julio-2012
Ubicación: public $Guadalajara
Mensajes: 397
Antigüedad: 11 años, 9 meses
Puntos: 12
Pregunta Obtener datos de dos tablas con condiciones distintas

Buenas foro.

Necesito hacer una consulta para obtener los datos de dos tablas que me guardan datos de facturacion la situacion es que necesito agrupar ambos datos por cliente pero no se como unir las dos tablas

hice esto pero no es el resultado que busco.
Código MySQL:
Ver original
  1. SELECT f.folio, f.fecha,f.status, f.totalFactura,a.nombreAsociado, c.cliente FROM factura f JOIN cliente c ON f.clienteID=c.clienteID JOIN asociado a ON c.asociadoID=a.asociadoID
  2.                 WHERE f.fecha BETWEEN '2013/01/01' AND '2013/02/01' AND (a.asociadoID = '2' OR a.asociadoID = '3')
  3.                 UNION
  4.                 SELECT f.folio, f.fecha,f.status_fact, f.total,a.nombreAsociado, c.cliente FROM facturajoseluis f JOIN cliente c ON f.clienteID=c.clienteID JOIN asociado a ON c.asociadoID=a.asociadoID
  5.                 WHERE f.fecha BETWEEN '2013/01/01' AND '2013/02/01' AND a.asociadoID = '1'

Espero me puedan ayudar
__________________
Lo imposible solo cuesta un poco mas
  #2 (permalink)  
Antiguo 25/02/2013, 10:03
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Obtener datos de dos tablas con condiciones distintas

En primer lugar: ¿Por qué existe una tabla llamada "facturajoseluis"?
Eso permite inferir que pueden existir serios defectos de diseño de datos... desde el momento en que una base de datos no debe jamás tener tablas personalizadas o esquemas individuales por individuos.
Un sistema de base de datos debe ser personalizable a nivel resultados, no a nivel de esquema.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 25/02/2013, 10:42
Avatar de jandrogdz  
Fecha de Ingreso: julio-2012
Ubicación: public $Guadalajara
Mensajes: 397
Antigüedad: 11 años, 9 meses
Puntos: 12
Respuesta: Obtener datos de dos tablas con condiciones distintas

Lo que pasa que son facturas distintas y en una se almacenana por ejemplo todas las de unos asociados y lleban consecutivo y a la que m haces mencion almacena otro asociado por la razon que te comento.

Ademas de que manejan distintos numeros de folios y al unir ambas en una sola causara conflictos al igualarse los numeros de folio
__________________
Lo imposible solo cuesta un poco mas
  #4 (permalink)  
Antiguo 25/02/2013, 11:26
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Obtener datos de dos tablas con condiciones distintas

Es exactamente lo que me temía. Es un defecto de diseño que se ha parchado de esa forma.
Los foliados a los que te refieres son lo mismo que se adminsitra cuando una misma empresa tiene sucursales donde también emiten facturas, y lo que se hace en ese caso es incluir un discriminador que indica en qué sucursal se facturó.
En Argentina, como ese tema está totalmente regulado por ley, es algo que se conoce y se soluciona desde el inicio, al punto que incluso debes diferenciar uno por uno los terminales de tickets que emiten cualquier comprobante, y si la empresa tiene también facturas manuales estas se clasifican como otro punto de venta... En ese sentido, desde el inicio se tiende a diseñar contemplando ese detalle. Es raro que se omita esa posibilidad.

En definitiva, lo que tienes es un error de diseño... que sería bueno evitar.

Yendo a la solución probable para tu caso y sin realizar cambios en la base, necesitaría que me aclares cuál es el listado que realmente debe conseguirse.
Si es evitar que los registros con ID solapado se eliminen entre si, y a la vez diferenciar de dónde provienen, la cosa podría andar por acá:
Código MySQL:
Ver original
  1.     'Factura GRAL' facturacion,
  2.     f.folio,
  3.     f.fecha,
  4.     f.status,
  5.     f.totalFactura,
  6.     a.nombreAsociado,
  7.     c.cliente
  8. FROM factura f
  9.     JOIN cliente c ON f.clienteID=c.clienteID
  10.     JOIN asociado a ON c.asociadoID=a.asociadoID
  11.     f.fecha BETWEEN '2013/01/01' AND '2013/02/01'
  12.     AND a.asociadoID IN (2, 3)
  13.     'Factura JL' facturacion,
  14.     f.folio,
  15.     f.fecha,
  16.     f.status_fact,
  17.     f.total,
  18.     a.nombreAsociado,
  19.     c.cliente
  20.     facturajoseluis f
  21.     JOIN cliente c ON f.clienteID=c.clienteID
  22.     JOIN asociado a ON c.asociadoID=a.asociadoID
  23.     f.fecha BETWEEN '2013/01/01' AND '2013/02/01'
  24.     AND a.asociadoID = 1
Si no es esto, danos un ejemplo más preciso de lo que hay que obtener.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #5 (permalink)  
Antiguo 25/02/2013, 11:44
Avatar de jandrogdz  
Fecha de Ingreso: julio-2012
Ubicación: public $Guadalajara
Mensajes: 397
Antigüedad: 11 años, 9 meses
Puntos: 12
Respuesta: Obtener datos de dos tablas con condiciones distintas

ok gracias por todos tus comentarios realmente es importante para mi todo eso ya que asi me ayudas a mi retroalimentacion diaria.

En efecto es algo asi lo que buscaba y si no es mucha molestia como se podrian hacer los totales.

Y siguiendo tu consejo como deberia de generar la tabla para almacenar ambos tipos de facturas en una sola.

De antemano muchas gracias.
__________________
Lo imposible solo cuesta un poco mas

Etiquetas: condiciones, distintas, tabla, tablas
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 07:49.