Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   MySQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=21)
-   -   SELECT dificil (https://www.clubdelphi.com/foros/showthread.php?t=46262)

taru 27-07-2007 10:22:49

SELECT dificil
 
tengo una tabla tickets en ella guardo
id, numero, desc_producto, cliente, cantidad, precio, cabecera, idcabecera
en realidad guardo mas cosas pero para el caso esto es lo que nos biene bien conocer.
lo de cabecera es o 1 ó 0 dependiendo si es una venta o un conjunto de unas cuantas ventas, es decir, cuando yo hago un ticket creo un registro en la tabla donde guardo el nombre del cliente (cliente) y el precio todal, y ademas pongo cabecera a 1 (porque esta seria la cabecera) y luego meto en la tabla por cada uno de los productos que tenga este ticket un registro con los datos del producto y su precio. pero lo hago de manera que el id del ticket cabecera quede almacenado en cada uno de los productos que lleva este ticket. Espero haberme explicado.

Bueno el problema esque ahora quiero hacer un select de manera que me cree una tabla donde tenga el nombre del producto, su precio, el nombre del cliente que lo compro. El problema esta enque el producto y su precio estan guardados en los registros que no son cabecera y el cliente en los que si. Como hago con el SELECT para que me cree esta tabla con los 3 campos sabiendo que en los tickets que no son cabecera guardo el id del que si es cabecera?.

Por ejemplo:

id numero desc_producto cliente cantidad precio cabecera idcabecera
1 1 manolo 50,00 1
2 calcetines blancos 2 10,00 0 1
3 camiseta 3 10,00 0 1
4 2 pepe 700,00 1
5 trompeta 5 100,00 0 4
6 caja 2 100,00 0 4

queda mal pero podeis ver este ejemplo.
http://www.subir-imagenes.com/ver_imagen.php?img=130419

Mick 27-07-2007 10:43:50

Necesitas hacer un join de la tabla consigo misma:

http://www.desarrolloweb.com/articulos/2355.php


Saludos

taru 27-07-2007 11:04:32

Gracias por responder pero mira la que pone como resultado de las consulta:

consulta SQL:
SELECT cliente, desc_producto, pvp, fecha
FROM ticket
INNER JOIN ticket ON ticket.id = ticket.idticket
LIMIT 0 , 30;


MySQL ha dicho:
#1066 - Not unique table/alias: 'ticket'

taru 27-07-2007 11:14:17

GRACIAS.
SOLUCIONADO ....

SELECT *
FROM ticket AS ticketcabecera
INNER JOIN ticket ON ticketcabecera.id = ticket.idticket;


lo que no se es como lo tendria que haber hecho para coger unos campos de la tabla en vez de todos con *;

Mick 27-07-2007 12:42:43

Cita:

Empezado por taru
GRACIAS.
SOLUCIONADO ....

SELECT *
FROM ticket AS ticketcabecera
INNER JOIN ticket ON ticketcabecera.id = ticket.idticket;


lo que no se es como lo tendria que haber hecho para coger unos campos de la tabla en vez de todos con *;

SELECT ticket.id, ticketcabecera.cliente FROM etc, ....


La franja horaria es GMT +2. Ahora son las 10:38:40.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi