Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Firebird e Interbase (https://www.clubdelphi.com/foros/forumdisplay.php?f=19)
-   -   Datos de dos tablas en DBGRID (https://www.clubdelphi.com/foros/showthread.php?t=17830)

PINO72 23-01-2005 02:43:20

Datos de dos tablas en DBGRID
 
Buenas noches:

Trabajo con dos IBDatasets, uno para articulos y otro que controla stocks.

Necesito mostrar en la misma rejilla los datos de los artículos y sus correspondientes stocks, teniendo en cuenta que la segunda tabla contiene entradas del mismo artículo en varios almacenes. En caso de no existir ninguna entrada en la tabla de stock para un artículo, se debe mostrar 0.

La estructura (simplificada) de las dos tablas es:

Artículos:
cCodigo - cDescripción - ...
Ejemplo:
0000001 - Tornillo
0000002 - Tuerca
...
Stocks:
cAlmacen - cCodigo - nStock - nDisponible - ...
Ejemplo:
'AL1' 0000001 - 001400 - 01000
'AL2' 0000001 - 2000 - 01500

La Rejilla deberia mostrar:
Código Descripción Stock Actual Stock Disponible
000001 Tornillo 3.400,00 2.500,00
000002 Tuerca 0,00 0,00

Cual sería la sentencia SQL más adecuada?.


Muchas gracias por anticipado ...

Toñico 23-01-2005 17:20:52

Hola Pino72, En interbase no conozco la sentencia exacta para los joins de tablas pero mas o menos sería así:

SELECT Articulos.cCodigo, Articulos.cDescripcion, Sum(Stocks.nStock) AS "Stock Actual", Sum(Stocks.nDisponible) AS "Stock Disponible" FROM Articulos LEFT JOIN Stocks IN Articulos.cCodigo = Stocks.cCodigo GROUP BY Articulos.cCodigo, Articulos.cDescripcion

Espero que te ayude, un saludo

PINO72 23-01-2005 19:32:18

Join Entre Articulos-stocks
 
Sólo tuve que corregir la parte de "LEFT JOIN STOCKS ON Articulos.cCodigo" y tirar de manual para el "GROUP BY" para que funcionara y va muy bien. Sólo una pequeña pega.... tarda un par de segundos en dar la información, supongo que es por tener 2.400 artículos dados de alta en la tabla y tener que comparar los stocks en la segunda para ofrecer la información.

No sabes la falta que le hace a uno que viene de Clipper estas "ayuditas" con el SQL.

Muchas gracias...;)


La franja horaria es GMT +2. Ahora son las 12:55:41.

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