Consulta en SQL NV<=>OC<=>FC

sql
Etiquetas: #<Tag:0x00007fb8db01f3b0>

#1

Hola estoy haciendo una consulta en QUERY MANAGER para SAP en la cual extrae información de varias tablas y muestra su información, mi problema es que no se me ocurre como puedo hacer para que cuando DESTINO sea igual a NO TIENE y STATUS FC sea igual a NO PAGADO. Oculte esa informacion y no aparescan las filas con ESTADO OC con C. me resulta un poco engorroso.
adjunto la query e imagen
Consulta a Query Manager

SELECT        dbo.OPOR.DocStatus AS 'Estado OC', dbo.OPOR.DocNum AS 'OC', dbo.POR1.BaseRef AS NV, dbo.POR1.ItemCode, dbo.POR1.Dscription, dbo.POR1.LineTotal AS [LINEA OC], dbo.RDR1.LineTotal AS 'LINEA NV', dbo.POR1.OcrCode4 AS PERSO, 
	CASE WHEN dbo.POR1.TargetType = '-1' THEN 'NO TIENE' WHEN dbo.POR1.TargetType = '18' THEN 'FACTURA' ELSE 'OTRO' END AS 'DESTINO', CASE WHEN (dbo.OPCH.DocTotal <> dbo.OPCH.PaidToDate OR
	ISNULL(dbo.OPCH.DocTotaL, '0') = 0) THEN 'NO PAGADO' ELSE 'PAGADO' END AS 'STATUS FC'
FROM            dbo.OPCH RIGHT OUTER JOIN
	dbo.OPOR INNER JOIN
	dbo.POR1 ON dbo.OPOR.DocEntry = dbo.POR1.DocEntry INNER JOIN
	dbo.RDR1 ON dbo.POR1.BaseEntry = dbo.RDR1.DocEntry AND dbo.POR1.BaseLine = dbo.RDR1.LineNum ON dbo.OPCH.DocEntry = dbo.POR1.TrgetEntry
WHERE        (dbo.POR1.BaseType = 17) AND (dbo.POR1.BaseRef LIKE '15%') AND (dbo.OPOR.CANCELED = 'N') AND (CASE WHEN (dbo.OPCH.DocTotal <> dbo.OPCH.PaidToDate OR
	ISNULL(dbo.OPCH.DocTotaL, '0') = 0) THEN 'NO PAGADO' ELSE 'PAGADO' END) = 'NO PAGADO'

#2

Hola, segun yo, solo te falta en el where.

AND dbo.OPOR.DocStatus <> ‘C’

Saludos
Marco


#3

Hola Marcoinxs, tienes razón eso me faltaba para terminar mi query, muchas gracias


#4

@GERARDO_ALBER por favor marca una solucion para los que vengan luego consigas una respuesta a consultar parecidas.


#5

Estimado mi problema esta en que cuando se cumpla que la condición (Estado OC = ‘C’, DESTINO = ‘NO TIENE’ y STATUS FC = ‘NO PAGADO’) esa fila es la que quiero que NO se muestre, por ejemplo en la imagen quisiera ocultar esas ultimas tres filas.
No quiero esas tres ultimas filas


#6

Hola compañero… agrupa la evaluación con un paréntesis y con eso soluciones tu detalle:

Ejemplo:

Where (dbo.POR1.BaseType = 17) AND (Estado OC <> ‘C’ AND DESTINO <> ‘NO TIENE’ AND STATUS FC <> ‘NO PAGADO’)

La verdad es que no soy muy bueno con las consultas, yo en tu caso estaría jugando con la cláusula where, sería mucho más rápido y me dejaría un mayor conocimiento.

Saludos.


#7