Spanish Ayuda con Sqlite

lumbanico

Member
Buenos días,

Estoy intentando montar una consulta a dos tablas de datos relacionadas. Una tiene los artículos y la otra tiene todos los lotes vinculados a cada uno de los artículos. Lo que quiero es que en una misma consulta me devuelva 2 lotes de todos los artículos, es decir:

Artículo - Lote
Artículo 1 - Lote A
Artículo 1 - Lote B
Artículo 2 - Lote C
Artículo 2 - Lote D
...

Lo he intentado con

B4X: Copy
SELECT tblArticulos.ArtCI,  L.LotCI FROM tblArticulos INNER JOIN (SELECT TOP 2 LotCI, LotCIArticulo FROM tblLotes WHERE LotCIArticulo = tblArticulos.ArtCI )  AS L ON tblArticulos.ArtCI = L.LotCIArticulo ORDER BY  tblArticulos.ArtCI;

Pero no me funciona.

¿Alguna sugerencia? Gracias!
 
Hola:

No soy muy bueno en SQL (tampoco) así que no me aclaro mucho. ¿Podrías poner la estructura de tus tablas y algunos datos de ejemplo?
Por eejmplo:
Tabla artículos:
id_articulo nombre_articulo
1 tomate
2 pera

Tabla Lotes:
id_lote id_articulo fecha_recepcion
A 1 2021-01-26
...
 
Hola!

tblArticulos:
ArtCI - ArtDenominacion
1 - Tornillo
2 - Martillo
3 - Paleta

tblLotes;
LotCI - LotDenominacion - LotCIArticulo
1 - LOT2101 - 1
2 - LOT2102 - 2
3 - LOT2101 - 2
4 - LOT2103 - 1
5 - LOT2001 - 3
6 - LOT2002 - 3
7 - LOT2103 - 1

El resultado que quiero con la Consulta es el siguiente resultado, que daría dos lotes por artículo:

LotCI - LotDenominacion - LotCIArticulo - ArtDenominacion
1 - LOT2101 - 1 - Tornillo
4 - LOT2103 - 1 - Tornillo
2 - LOT2102 - 2 - Martillo
3 - LOT2101 - 2 - Martillo
5 - LOT2001 - 3 - Paleta
6 - LOT2002 - 3 - Paleta

Gracias!
 
Podría ser:
SQL: Copy
SELECT L.LotCl,L.LotDenominacion,L.LotClArticulo,(SELECT A.ArtDenominacion FROM tblArticulos A WHERE A.ArtCl=L.LotClArticulo) as ArtDenominacion FROM tblLotes L

o bien

SQL: Copy
SELECT L.LotCl,L.LotDenominacion,L.LotClArticulo, A.ArtDenominacion FROM tblLotes L INNER JOIN tblArticulos A ON L.LotClArticulo=A.ArtCl
 
Podría ser:
SQL: Copy
SELECT L.LotCl,L.LotDenominacion,L.LotClArticulo,(SELECT A.ArtDenominacion FROM tblArticulos A WHERE A.ArtCl=L.LotClArticulo) as ArtDenominacion FROM tblLotes L

o bien

SQL: Copy
SELECT L.LotCl,L.LotDenominacion,L.LotClArticulo, A.ArtDenominacion FROM tblLotes L INNER JOIN tblArticulos A ON L.LotClArticulo=A.ArtCl

Las dos opciones funcionan correctamente, pero ¿cómo limito que el número máximo de lotes que muestre por cada artículo sea 5? He probado añadiendo LIMIT pero no me funciona.

Gracias!
 
Back
Top