on 04-27-2011 4:07 PM
HOLA A TODOS.
NECESITO AYUDA CON RESPECTO A UNA BUSQUEDA FORMATEADA, NECESITO QUE EN EL CAMPO DEL ALMACEN SEA EL MISMO QUE TIENE EL ARTICULO DEL DOCUMENTO ANTERIOR, PERO QUE SI ES CREADO SIN TOMARLO DE UN DOCUEMNTO PREVIO ME MUESTR EL ALMACEN LIGADO A LA SERIE DE LA QUE ESTOY HACIENDO EL DOCUMENTO.
AGRADECERIA ALGUNA IDEA.
YA LOS PRBE POR SEPARADO Y FUNCIONAN PERFECTO EL PROBLEMA ES QUE CON EL IF ME MANDA ERROR DE LA PALABRA CLAVE FOR PERO NO SE A QUE SE DEBA SI NO ESTOY MANEJANDO UN FOR
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
A ver si asi
declare @docbase as int
set @docbase =(select count (baseref) from inv1 a join oinv b on a.docentry=b.docentry where b.docnum in (select $[oinv,docnum]))
begin
if @docbase>0
SELECT T2.WhsCode
FROM DBz0404.dbo.ODLN T1
INNER JOIN DBz0404.dbo.DLN1 T2 ON T1.DocEntry = T2.DocEntry
WHERE T1.DocEntry =(select $[inv1.baseentry])
AND T2.ItemCode = (select $[$38.1.0])
end
begin
if @docbase=0
Select T0.Code from dbo.[@NSFT_ALMACEN_SUC] T0
Inner Join NNM1 T1 on T0.U_Sucursal=T1.SeriesName
Inner Join OITM T2 on T2.ItemCode = (select $[$38.1.0])
Where T1.Series = (select $[$88.0.1])
And T2.U_Tipo_Art =T0.U_Tipo
FROM OINV T0
WHERE T0.DocNum =(select $[oinv.docnum])
end
YA QUEDO RESUELTO, NADA MAS DALTABA UN SELECT QUE MOSTRARA AL FINAL EL VALOR DE LA VARIABLE.
Declare @docbase As int
Declare @almacen As char(4)
Set @docbase =(Select Count (T0.baseref) From dbo.inv1 T0 Inner Join dbo.oinv T1 on T0.docentry=T1.docentry
Where T1.docnum = $[$8.1.0] AND T0.BaseRef > 0)
if @docbase > 0
begin
SET @almacen = (
SELECT T2.WhsCode
FROM dbo.ODLN T1
INNER JOIN dbo.DLN1 T2 ON T1.DocEntry = T2.DocEntry
WHERE T1.DocEntry =(select T0.BaseEntry from dbo.INV1 T0 join dbo.oinv T1 on T0.docentry=T1.docentry where T1.docnum = $[$8.1.0])
AND T2.ItemCode = $[$38.1.0])
end
if @docbase=0
begin
set @almacen =(
Select T0.WhsCode from dbo.[INV1] T0
join dbo.oinv T1 on T0.docentry=T1.docentry
Where T0.ItemCode =$[$38.1.0] AND T1.docnum = $[$8.1.0])
end
select @almacen
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
SI LE QUITO EL ELSE NADA MAS CORRE LA OPCION DE ABAJO SE SALTA LA CONDICION DEL IF, AUNQUE TENGA VALOR SALE EL RESULTADO DE LA BUSQUEDA DE ABAJO
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
HOLA, MIRA ASI YA CASI CORRE NADA MAS QUE ME MARCA EL ERROR EN LA PALABRA CLAVE FOR, LO CUAL NO SE QUE PASA POR QUE NO TENGO NINGUN FOR
IF (SELECT count(T0.BaseRef)from INV1 t0 WHERE T0.DocEntry = 1048089)>0
BEGIN
SELECT T2.WhsCode
FROM dbo.OINV T00
INNER JOIN dbo.INV1 T0 ON T00.DocEntry = T0.DocEntry
INNER JOIN dbo.ODLN T1 ON T0.BaseRef = T1.DocNum
INNER JOIN dbo.DLN1 T2 ON T1.DocEntry = T2.DocEntry
WHERE T00.DocNum = 1048089 --T0.BaseRef
AND T2.ItemCode = '0646-4001-0024' --$http://$38.1.0
AND T2.LineNum = 0 --$http://$38.1.1
END
ELSE
BEGIN
Select T0.Code from dbo.[@NSFT_ALMACEN_SUC] T0
Inner Join NNM1 T1 on T0.U_Sucursal=T1.SeriesName
Inner Join OITM T2 on T2.ItemCode = '0646-4001-0024'--$http://$38.1.0
Where T1.Series = 12 --$http://$88.0.1
And T2.U_Tipo_Art =T0.U_Tipo
END
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
ME PONE EL ERROR:
1) INCORRECT SYNTAX NEAR THE KEYWORD FROM
PERO NO ME DICE EN EL FROM DE QUE LINEA ASI QUE SUPONGO QUE ES DE LA PRIMERA.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Ok
a ver asi
declare @docbase as int
set @docbase =(select count (baseref) from inv1 a join oinv b on a.docentry=b.docentry where b.docnum in (select $[oinv,docnum]))
if @docbase>0
begin
SELECT T2.WhsCode
FROM DBz0404.dbo.ODLN T1
INNER JOIN DBz0404.dbo.DLN1 T2 ON T1.DocEntry = T2.DocEntry
WHERE T1.DocEntry =(select $[inv1.baseentry])
AND T2.ItemCode = (select $[$38.1.0])
end
else
if @docbase=0
begin
Select T0.Code from dbo.[@NSFT_ALMACEN_SUC] T0
Inner Join NNM1 T1 on T0.U_Sucursal=T1.SeriesName
Inner Join OITM T2 on T2.ItemCode = (select $[$38.1.0])
Where T1.Series = (select $[$88.0.1])
And T2.U_Tipo_Art =T0.U_Tipo
FROM OINV T0
WHERE T0.DocNum =(select $[oinv.docnum])
end
AQUI LE PUSE VALORES DEFINIDOS A LAS VARIABLES PARA HACER DIRECTAMENTE LA PRUEBA EN LA BF.
SELECT
IF (T0.[BaseRef] NOT NULL) THEN
BEGIN
SELECT T2.WhsCode
FROM [DBz0404].[dbo].[ODLN] T1
INNER JOIN [DBz0404].[dbo].[DLN1] T2 ON T1.DocEntry = T2.DocEntry
WHERE T1.DocNum = 1044778 --T0.BaseRef
AND T2.ItemCode = '0646-4001-0024' --$[$38.1.0]
AND T2.LineNum = 0 --$[$38.1.1]
END
ELSE
BEGIN
Select T0.Code from [dbo].[@NSFT_ALMACEN_SUC] T0
Inner Join NNM1 T1 on T0.U_Sucursal=T1.SeriesName
Inner Join OITM T2 on T2.ItemCode = '0646-4001-0024'--$[$38.1.0]
Where T1.Series = 12 --$[$88.0.1]
And T2.U_Tipo_Art =T0.U_Tipo
END
FROM OINV T0
WHERE T0.DocNum = 1048089
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
A ver , intenta asi
IF (SELECT count(T0.BaseRef)from INV1 t0)>0
BEGIN
SELECT T2.WhsCode
FROM DBz0404.dbo.ODLN T1
INNER JOIN DBz0404.dbo.DLN1 T2 ON T1.DocEntry = T2.DocEntry
WHERE T1.DocNum = 1044778 --T0.BaseRef
AND T2.ItemCode = '0646-4001-0024' --$http://$38.1.0
AND T2.LineNum = 0 --$http://$38.1.1
END
ELSE
Select T0.Code from dbo.@NSFT_ALMACEN_SUC T0
Inner Join NNM1 T1 on T0.U_Sucursal=T1.SeriesName
Inner Join OITM T2 on T2.ItemCode = '0646-4001-0024'--$http://$38.1.0
Where T1.Series = 12 --$http://$88.0.1
And T2.U_Tipo_Art =T0.U_Tipo
FROM OINV T0
WHERE T0.DocNum = 1048089
TIENES ALGUN EJEMPLO DE ALGUN IF QUE TE HAYA FUNCIONADO EN UNA BF PARA BASARME EN ELLO POR QUE ME MARCA UN ERROR AL INTENTAR AÑADIR EL THEN NO SE POR QUE.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
NO, ME REFIERO A QUE SI HAGO UNA FACTURA QUE VIENE DESDE UNA ENTREGA ME JALE EL ALMACEN DE CADA ARTICULO TAL CUAL ESTABAN EN LA ENTREGA, PERO SI LA FACTURA ES REALIZADA SIN ENTREGA QUE ME COLOQUE EL ALMACEN AL QUE PERTENECE LA SERIE.
NECESITO COMO FUNCIONARIA UN IF EN UNA BUSQUEDA FORMATEADA PERO NO TENGO LA CONDICIONAL DIRECTA.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Te recomiendo que comiences tu BF validando que el baseentry de tu inv1 este nulo, si es asi entonces que entres a un begin donde traigas el almacen asociado a tu serie (supongo en alguna tabla de usuario o algo podrias apoyarte)
Si no, pues entonces que traiga el whscode de tu dln1 (entrega)
Buenas tardes
Bienvenida al SCN
En que documento necesitas ubicar esta BF?
Con documento anterior, te refieres a buscar el ultimo documento que se hizo con este articulo?
Sin documento previo significa que no tiene un documento base, o me equivoco?
Slds
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
85 | |
7 | |
6 | |
4 | |
3 | |
3 | |
3 | |
3 | |
3 | |
2 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.