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:
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;
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
...
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:
SELECT L.LotCl,L.LotDenominacion,L.LotClArticulo, A.ArtDenominacion FROM tblLotes L INNER JOIN tblArticulos A ON L.LotClArticulo=A.ArtCl
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:
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.