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

una de MySql con dos tablas.

Estas en el tema de una de MySql con dos tablas. en el foro de Bases de Datos General en Foros del Web. Hola gente... Queria saber si me pueden evacuar la siguiente duda.... Tengo 2 tablas... - Encabezado de Factura. Campos... nro_de_factura codigo_de_cliente fecha_de_factura etc..... - Items ...
  #1 (permalink)  
Antiguo 12/09/2004, 08:31
 
Fecha de Ingreso: julio-2003
Mensajes: 71
Antigüedad: 20 años, 9 meses
Puntos: 0
una de MySql con dos tablas.

Hola gente...

Queria saber si me pueden evacuar la siguiente duda....

Tengo 2 tablas...

- Encabezado de Factura.
Campos...
nro_de_factura
codigo_de_cliente
fecha_de_factura
etc.....

- Items Facturados.
Campos
nro_de_factura
Codigo de articulo
importe
etc...

Mi pregunta es la siguiente...

Es posible realizar en UNA SOLA SELECT que devuelva la ultima factura realizada de un Cliente x ,( seria por fecha_de_factura mayor ), y me detalle todos los items Facturados de la segunda tabla?
Es esto posible con MySql ?. Tengan en cuenta que mi pregunta es si se puede realizar en solamente UNA SELECT.
Espero haberme explicado bien....

Desde ya Mil gracias por la ayuda...
  #2 (permalink)  
Antiguo 12/09/2004, 11:33
Avatar de Genetix  
Fecha de Ingreso: febrero-2002
Ubicación: Lima - Perú
Mensajes: 1.600
Antigüedad: 22 años, 2 meses
Puntos: 45
Hola killaton

A tu presunta si se puede o no, yo te digo que si se puede
La sentencia seria mas o menos asi
Select * From tu_tabla_facturas as tb1, tu_tabla_items_facturas as tb2, tu_tabla_clientes as tb3 Where tb1.nro_de_factura=tb2.nro_de_factura AND tbl1.id_cliente=tu_id
Order by tb2.fecha_de_factura DESC LIMIT 1

Eso se me ocurre, tendrias que probarlo
saludos
  #3 (permalink)  
Antiguo 12/09/2004, 13:40
Avatar de Vice  
Fecha de Ingreso: agosto-2003
Mensajes: 613
Antigüedad: 20 años, 9 meses
Puntos: 2
La sentencia que te pone Genetix es casi correcta, pues si tienes más de un ítem, no los verás todos, sólo verás uno.
Dependiendo de que versión de Mysql tengas lo podrás hacer en una sentencia sql o no, pues necesitas de subqueries para poder hacerlo en una única sentencia.
Si la versión de mysql que tienes (4.1 o posterior) te admite subqueries, puedes motarla consulta así:
Código:
select *
from tabla_facturas t1, tabla_items t2
where t1.nro_factura = t2.nro_factura
and t1.nro_factura = (select max(nro_factura) from tabla_facturas)
En el caso de que no te admita subqueries, lo más aproximado es lo que te ha puesto genetix, quitando el limit:
Código:
select * 
from tabla_facturas t1, tabla_items t2
where t1.nro_factrua = t2.nro_factura
order by t1.nro_factura desc
Para mostrar lo que tú quieres, muestras todas las filas, hasta que te cambie el número de factura.
Un saludo.
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 15:34.