Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   seleccionar solo un registro (https://www.clubdelphi.com/foros/showthread.php?t=34225)

m8estrella83 01-08-2006 20:42:26

seleccionar solo un registro
 
Hola Espero expliacrme bien y ke me peudan ayudar .

Necesito seleccionar de la tabla factura los productos ke se han vendido pero no tadas las veces ke se an facturado
ejemplo:

Tf_detalle

Factura Producto Desc1 cant
0002 21062570 mesa 1
0003 21062593 silla azul 4
0003 21062570 mesa 1
0004 21064530 sillon 2
0005 21062570 mesa 1
0005 21062593 silla azul 4


seleccionar los productos ke se an vendido con la descripcion

21062570 mesa
21062593 silla azul
21064530 sillon

he intentado hase una consulta
SELECT distinct Producto from tf_detalle

pero unicamente me muesta el numero del producto y yo necesito ke me muestre el numero y la descripcion.

cabe señalar ke las sillas son iguales y solo cambian el color, para mi son la misma puesto ke el usuario solo agrega el color de esta en la factura, teniendo asi el mismo numero de producto

espero me entiendan y me puedan ayudar

vtdeleon 01-08-2006 20:48:16

Saludos

Prueba agrupandolo
Código SQL [-]
Select * from tabla
group by producto

m8estrella83 01-08-2006 21:23:06

He intentado pero me muestra este error

"When GROUP BY exists, every simple field in projectors must be
in GROUP BY"

roman 01-08-2006 21:29:26

Cita:

Empezado por m8estrella83
pero unicamente me muesta el numero del producto y yo necesito ke me muestre el numero y la descripcion.

¿Pues que no basta agregar el campo descripción?

Código SQL [-]
select distinct producto, desc1 from tf_detalle

// Saludos

m8estrella83 01-08-2006 21:40:41

si se hubiese vendido

factura producto desripcion
0002 21062593 silla azul
0003 21062593 silla blanca
0004 21062570 Mesa
0004 21062593 silla blanca


me seleccionara

21062593 silla azul
21062593 silla blanca
21062570 mesa

para mi eso es incorrecto porke las dos sillas utilizan el mismo numero de producto

yo solo necesitaria ke me diera

21062593 silla azul
21062570 mesa

roman 01-08-2006 21:51:54

Bueno, pero entonces queda poco claro cómo haría (el motor o tú misma) para seleccionar los registros. Esto es, con base en qué se decide, de entre los registros que contienen "silla", cuál tomar.

Dicho de otra forma, del último ejemplo que pones, dices necesitar:

21062593 silla azul
21062570 mesa

como resultado, pero igualmente válido sería

21062593 silla blanca
21062570 mesa

De ser posible, ese atributo color que pone el usuario debería estar en otro campo.

// Saludos

m8estrella83 01-08-2006 23:50:41

Es verdad no lo habia visto desde ese punto.

Tendre ke encontrar otra forma de obtener lo ke necesito

agradesco su ayuda muchas gracias

roman 02-08-2006 01:51:11

Supongo que en algún lado tienes una tabla productos con el código y su descripción; de lo contrario podrías crearla a manera de catálogo. Con ella podrías armar la consulta:

Código SQL [-]
select distinct tf_detalle.producto, productos.desc1
from tf_detalle, productos
where tf_detalle.producto = productos.codigo

Claro que la tabla productos, ésa sí, contendría sólo "silla" y no "silla blanca".

O bien, simplemente haces el select distinct producto y ya en delphi agregas un campo calculado que ligue con la tabla de productos para mostrar la descripción.

// Saludos

anghell77 07-08-2006 08:51:12

Podria Funcionar....
 
Si dices que el atributo Color es especificado por el usuario,el cual no tengo idea de dónde se está almacenando, si es que se almacena, puedes crear un DBLookUpCombobox de los colores, de esa manera puedes pasar parámetros al momento de la búsqueda. A ver si me explico mejor.

Se crea un nuevo campo en el componente TTable de tipo String y en el TypeField LookUp, que te devuelva los colores...y luego, en tu consulta puedes poner:

Select *from Tabla where Producto=:entrada
and Color=:entrada2
Donde, los parámetros de entrada serían Silla y Azul....(Producto y Color)...
empleando para el evento que lance la búsqueda:
Query1.Close;
Query1.ParamByName('entrada').AsString:=trim(Edit1.Text)
Query1.ParamByName('entrada2').AsString:=trim(DBLookUpCombobox1.Text)
Query1.Open;

suponiendo que llamaras a una sola tabla

si fuera a dos tablas pues sólo cambiaría el texto de la Consulta...
Espero que eso fuera un procedimiento Alterno...que pudiera funcionarte, siempre y cuando se almacenen el atributo "COLOR"....


La franja horaria es GMT +2. Ahora son las 16:39:26.

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