SQL - Consulta de SQL (quisiera hacer un filtro u ocultar una convinacion de resultados)

 
Vista:
sin imagen de perfil

Consulta de SQL (quisiera hacer un filtro u ocultar una convinacion de resultados)

Publicado por Gerardo (3 intervenciones) el 21/07/2017 16:17:10
Estimados tengo una consulta la cual consiste en mostrar una lista de rendiciones, esta la ejecuto en SQL por ejemplo:

SELECT T0.[DocStatus] AS 'ESTADO_OC', T0.[DocNum] AS 'OC', T1.[BaseRef] 'NV', T1.[ItemCode], T1.[Dscription],
T1.[LineTotal] AS 'LINE_OC', T2.[LineTotal] AS 'LINEA_NV', T1.[OcrCode4] AS 'PERSO',
CASE WHEN T1.[TargetType]='-1' THEN 'NO_TIENE' WHEN T1.[TargetType]='18' THEN 'FACTURA' ELSE 'OTRO' END AS 'DESTINO',
CASE WHEN (T4.[DocTotal] <> T4.[PaidToDate] OR ISNULL (T4.[DocTotal], '0')=0) THEN 'NO_PAGADO' ELSE 'PAGADO' END AS 'STATUS_FC', T3.[PrcName]
FROM OPRC T3 INNER JOIN OPOR T0 INNER JOIN
POR1 T1 ON T0.[DocEntry] = T1.[DocEntry] INNER JOIN
RDR1 T2 ON T1.[BaseEntry] = T2.[DocEntry] AND T1.[BaseLine] = T2.[LineNum] ON
T3.[PrcCode] = T1.[OcrCode4] LEFT OUTER JOIN
OPCH T4 ON T1.[TrgetEntry] = T4.[DocEntry]
WHERE (T1.[BaseType]=17)
AND (T1.[BaseRef] LIKE '15%')
AND (T0.[CANCELED]='N')
AND ((CASE WHEN (T4.[DocTotal] <> T4.[PaidToDate] OR ISNULL (T4.[DocTotal],'0')=0) THEN 'NO_PAGADO' ELSE 'PAGADO' END) = 'NO_PAGADO')

La cual muestra una lista como la siguiente, quite una columnas que no me sirven:

# Estado OC OC NV Número Descripción DESTINO STATUS FC Nombre
1 O 6267 15000356 ADRE0001 REND./11111111 NO TIENE NO PAGADO Luis
2 C 6300 15000368 ADRE0004 RENDICION FACTURA NO PAGADO Ana
3 C 5278 15000224 ADRE0001 AUTOMATICOS NO TIENE NO PAGADO Daniel

Como podría hacer para que me elimine u oculte la tercera fila la cual tiene Estado C, Destino NO TIENE y Status FC NO PAGADO, mi problema es que este un un listado muy grande, acaEstimados tengo una consulta la cual consiste en mostrar una lista de rendiciones de SAP en una consulta de SQL por ejemplo:
SELECT T0.[DocStatus] AS 'ESTADO_OC', T0.[DocNum] AS 'OC', T1.[BaseRef] 'NV', T1.[ItemCode], T1.[Dscription],
T1.[LineTotal] AS 'LINE_OC', T2.[LineTotal] AS 'LINEA_NV', T1.[OcrCode4] AS 'PERSO',
CASE WHEN T1.[TargetType]='-1' THEN 'NO_TIENE' WHEN T1.[TargetType]='18' THEN 'FACTURA' ELSE 'OTRO' END AS 'DESTINO',
CASE WHEN (T4.[DocTotal] <> T4.[PaidToDate] OR ISNULL (T4.[DocTotal], '0')=0) THEN 'NO_PAGADO' ELSE 'PAGADO' END AS 'STATUS_FC', T3.[PrcName]
FROM OPRC T3 INNER JOIN OPOR T0 INNER JOIN
POR1 T1 ON T0.[DocEntry] = T1.[DocEntry] INNER JOIN
RDR1 T2 ON T1.[BaseEntry] = T2.[DocEntry] AND T1.[BaseLine] = T2.[LineNum] ON
T3.[PrcCode] = T1.[OcrCode4] LEFT OUTER JOIN
OPCH T4 ON T1.[TrgetEntry] = T4.[DocEntry]
WHERE (T1.[BaseType]=17)
AND (T1.[BaseRef] LIKE '15%')
AND (T0.[CANCELED]='N')
AND ((CASE WHEN (T4.[DocTotal] <> T4.[PaidToDate] OR ISNULL (T4.[DocTotal],'0')=0) THEN 'NO_PAGADO' ELSE 'PAGADO' END) = 'NO_PAGADO')

La cual muestra una lista como la siguiente, quite una columnas que no me sirven:
# Estado OC OC NV Número Descripción DESTINO STATUS FC Nombre
1 O 6267 15000356 ADRE0001 REND./11111111 NO TIENE NO PAGADO Luis
2 C 6300 15000368 ADRE0004 RENDICION FACTURA NO PAGADO Ana
3 C 5278 15000224 ADRE0001 AUTOMATICOS NO TIENE NO PAGADO Daniel

Como podría hacer para que me elimine u oculte la tercera fila la cual tiene Estado C, Destino NO TIENE y Status FC NO PAGADO, mi problema es que este un un listado muy grande, acá solo deje los tres tipos de resultados que me muestra, favor su ayuda gracias solo deje los tres tipos de resultados que me muestra, favor su ayuda gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Isaias
Val: 2.542
Oro
Ha mantenido su posición en SQL (en relación al último mes)
Gráfica de SQL

Consulta de SQL (quisiera hacer un filtro u ocultar una convinacion de resultados)

Publicado por Isaias (1692 intervenciones) el 21/07/2017 16:39:43
¿En que motor de base de datos?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Consulta de SQL (quisiera hacer un filtro u ocultar una convinacion de resultados)

Publicado por Gerardo Bustos (3 intervenciones) el 21/07/2017 17:15:30
SQL Server 2012 y luego lo modifico para ejecutarlo en SAP.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Isaias
Val: 2.542
Oro
Ha mantenido su posición en SQL (en relación al último mes)
Gráfica de SQL

Consulta de SQL (quisiera hacer un filtro u ocultar una convinacion de resultados)

Publicado por Isaias (1692 intervenciones) el 21/07/2017 20:26:31
Muy simple, consulta CASE WHEN END
1
2
3
4
5
6
CASE ebv.db_no
  WHEN 22978 THEN 'WECS 9500'
  WHEN 23218 THEN 'WECS 9500'
  WHEN 23219 THEN 'WECS 9500'
  ELSE 'WECS 9520'
END as wecs_system

Traducido seria

Cuando el campo ebv.db_no sea 22978 presentame 'WECS 9500', si fuera 23218 presentame 'WECS 9500', si fuera 23219 presentame 'WECS 9500', si no es ninguno de estos, entonces presentame 'WECS 9520' y ponle como titulo 'wecs_system' a la columna.

¿Me explique?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Consulta de SQL (quisiera hacer un filtro u ocultar una convinacion de resultados)

Publicado por Gerardo Bustos (3 intervenciones) el 21/07/2017 21:21:46
Hola mira lo realice de la siguiente forma

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
SELECT	T0.[DocStatus] AS 'ESTADO_OC', T0.[DocNum] AS 'OC', T1.[BaseRef] 'NV', T1.[ItemCode], T1.[Dscription],
		T1.[LineTotal] AS 'LINE_OC', T2.[LineTotal] AS 'LINEA_NV', T1.[OcrCode4] AS 'PERSO',
		CASE WHEN T1.[TargetType]='-1' THEN 'NO_TIENE' WHEN T1.[TargetType]='18' THEN 'FACTURA' ELSE 'OTRO' END AS 'DESTINO',
		CASE WHEN (T4.[DocTotal] <> T4.[PaidToDate] OR ISNULL (T4.[DocTotal], '0')=0) THEN 'NO_PAGADO' ELSE 'PAGADO' END AS 'STATUS_FC', T3.[PrcName]
FROM OPRC T3
INNER JOIN OPOR T0
INNER JOIN POR1 T1 ON T0.[DocEntry] = T1.[DocEntry]
INNER JOIN RDR1 T2 ON T1.[BaseEntry] = T2.[DocEntry] AND T1.[BaseLine] = T2.[LineNum] ON T3.[PrcCode] = T1.[OcrCode4]
LEFT OUTER JOIN OPCH T4 ON T1.[TrgetEntry] = T4.[DocEntry]
WHERE	T1.[BaseType]=17
		AND T1.[BaseRef] LIKE '15%'
		AND T0.[CANCELED]='N'
		AND ((T4.[DocTotal] <> T4.[PaidToDate]) OR (ISNULL(T4.[DocTotal],0)=0))
		AND T0.[DocStatus] <> 'C'
               AND T1.[TargetType]<>1
 
UNION ALL
 
SELECT	T0.[DocStatus] AS 'ESTADO_OC', T0.[DocNum] AS 'OC', T1.[BaseRef] 'NV', T1.[ItemCode], T1.[Dscription],
		T1.[LineTotal] AS 'LINE_OC', T2.[LineTotal] AS 'LINEA_NV', T1.[OcrCode4] AS 'PERSO',
		CASE WHEN T1.[TargetType]='-1' THEN 'NO_TIENE' WHEN T1.[TargetType]='18' THEN 'FACTURA' ELSE 'OTRO' END AS 'DESTINO',
		CASE WHEN (T4.[DocTotal] <> T4.[PaidToDate] OR ISNULL (T4.[DocTotal], '0')=0) THEN 'NO_PAGADO' ELSE 'PAGADO' END AS 'STATUS_FC', T3.[PrcName]
 
FROM OPRC T3
INNER JOIN OPOR T0
INNER JOIN POR1 T1 ON T0.[DocEntry] = T1.[DocEntry]
INNER JOIN RDR1 T2 ON T1.[BaseEntry] = T2.[DocEntry] AND T1.[BaseLine] = T2.[LineNum] ON T3.[PrcCode] = T1.[OcrCode4]
LEFT OUTER JOIN OPCH T4 ON T1.[TrgetEntry] = T4.[DocEntry]
WHERE	T1.[BaseType]=17
		AND (T1.[BaseRef] LIKE '15%')
		AND (T0.[CANCELED]='N')
		AND ((T4.[DocTotal] <> T4.[PaidToDate]) OR (ISNULL(T4.[DocTotal],0)=0))
		AND T1.[TargetType] = 18

Ojala le sirva a alguien, saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Isaias
Val: 2.542
Oro
Ha mantenido su posición en SQL (en relación al último mes)
Gráfica de SQL

Consulta de SQL (quisiera hacer un filtro u ocultar una convinacion de resultados)

Publicado por Isaias (1692 intervenciones) el 27/07/2017 17:24:15
Muy bien, gracias por compartir tu solucion
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar