Ver la Versión Completa : extraer solo 1 registro del detalle
oscarac
15-05-2019, 23:15:59
buenas tardes quiza el titulo no sea el mejor pero es lo que busco
todos hemos trabajado con Cabecera y detalle
si tengo un registro en la cabecera y le hago un join al detalle, el resultado seran tantos registros como tenga el detalle
estoy buscando la forma de "mostrar" solo 1 por detalle en caso exista el registro
la idea es buscar en otra tabla un codigo de articulo y que en caso existir me devuelva un true o false, o al menos el codigo del articulo buscado...
no se si logro hacerme entender
le estoy dando vueltas a como seria la consulta
Select Codigo, descripcion
from tblArticulo A
Left Join TblArticuloCfg B on A.Codigo = B.Codigo
quiza con subconsultas
oscarac
15-05-2019, 23:30:52
se me ocurrio esto
Select distinct Articulo into #arti from TblArticuloCfg where empresa ='005'
Select A.Codigo , A.descripcion, B.Articulo
from tblArticulo A
Left Join #arti B on A.Codigo = B.articulo
where empresa = '005'
si alguien conoce otra forma, me ayuda?
Casimiro Notevi
16-05-2019, 02:37:15
Depende del gestor de bases de datos que uses
select first 1 from tbClientes where ...
select top 1 ...
select ... limit 1
etc.
oscarac
16-05-2019, 04:13:40
si, eso lo sé
pero creo que no entendiste bien lo q queria hacer
Tabla 1 Tabla 2
A A1
B A1
C A1
D C1
C1
C1
queria que salgo asi
A, A1
B, null
C, Cl1
D, Null
Casimiro Notevi
16-05-2019, 08:09:54
No lo entiendo :confused:
mamcx
16-05-2019, 14:29:38
Esto es una tarea para las funciones WINDOW:
https://mode.com/sql-tutorial/sql-window-functions/
en especial ROW_NUMBER
http://www.sqltutorial.org/sql-window-functions/sql-row_number/
Con eso, pones el # de fila en cada resultado de tabla2 y filtras el join WHERE row=1.
oscarac
16-05-2019, 18:35:51
No lo entiendo :confused:
si haces un query con un left join a estas tablas
Tabla 1 Tabla 2
A A1
B A1
C A1
D C1
C1
C1
el resultado seria
A - A1
A - A1
A - A1
B - NULL
C - C1
C - C1
C - C1
D - NULL
yo busco que salga asi
A, A1
B, null
C, Cl1
D, Null
orodriguezca
16-05-2019, 19:05:22
Prueba de esta forma:
Select Codigo, descripcion, (Select count(*) from TblArticuloCfg B where A.Codigo = B.Codigo) as Contador
from tblArticulo A
Otra forma:
Select Codigo, descripcion , X.algun_campo
from tblArticulo A
cross Join ( select top 1 * from TblArticuloCfg B on A.Codigo = B.Codigo) X
oscarac
16-05-2019, 19:13:25
si, esto tambien ayuda a mi proposito, gracias
aposi
16-05-2019, 21:36:17
prueba el distinc
select distinct A.Codigo , A.descripcion, B.Articulo
from tblArticulo A
Left Join #arti B on A.Codigo = B.articulo
vBulletin v3.6.8, Derechos ©2000-2024, Jelsoft Enterprises Ltd.