L lumbanico Member Jan 26, 2021 #1 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!
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!
josejad Expert Licensed User Longtime User Jan 26, 2021 #2 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: 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 ...
L lumbanico Member Jan 26, 2021 #3 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!
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!
I IdasI4A Active Member Licensed User Longtime User Jan 26, 2021 #4 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
L lumbanico Member Jan 28, 2021 #5 IdasI4A said: 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 Click to expand... 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!
IdasI4A said: 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 Click to expand... 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!