SQL Server - Comparación de campos

 
Vista:
sin imagen de perfil

Comparación de campos

Publicado por Lalo (1 intervención) el 10/04/2018 18:54:31
Hola a todos,

Estoy realizando una consulta en SQL para BD en SAP donde muestro el campo "Proyecto Facturas" extraido de la tabla del documento Facturas de deudores, pero si en este campo de la factura se introduce información erronea todavía podemos hacer la corrección en el campo "Proyecto" del asiento (Registro de diario), entonces al generar la consulta para ver la información que hay en cada campo (Proyecto factura y Proyecto asiento), me interesa que si es igual la información ponga en blanco en el campo "Proyecto Asiento" y si se cambio el proyecto en el campo del asiento muestre la información en dicho campo. Que sentencias podría utilizar o como podría quedar?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
SELECT T0.[DocDate],
T0.[DocNum] as #Factura, 
T0.[NumAtCard] as #Ref_SN, 
T0.[CardCode] as 'Cod_Cte/Prov',
T0.[CardName],
T1.[Dscription],
T1.[Price],
T0.[DocTotal],
T0.[DocTotalFC],
T0.[CurSource],
T1.[Project] AS 'Proyecto Facturas',
T2.[TransId],
T3.[Project] AS 'Proyecto Asiento',
 T3.[Account]
FROM OINV T0  INNER JOIN INV1 T1 ON T0.[DocEntry] = T1.[DocEntry] INNER JOIN OJDT T2 ON T0.[TransId] = T2.[TransId] INNER JOIN JDT1 T3 ON T2.[TransId] = T3.[TransId] WHERE T0.Series = '28' and T1.Project = [%0]
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

Comparación de campos

Publicado por jams (93 intervenciones) el 13/04/2018 17:42:05
Buenos dias prueba por favor lo siguiente

CASE WHEN T1.[Project]=T3.[Project] THEN ''
ELSE
T3.[Project]
END AS 'PA Comparado',
en el cuerpo de tu select como si se tratara de un campo mas, adicionalo y una vez que verifiques que es lo correcto entonces sustituye el campo y quita el que tenias


espero que te sirve y que sea lo que esperas

Saludos y suerte
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
sin imagen de perfil

Comparación de campos

Publicado por Lalo (3 intervenciones) el 16/04/2018 21:04:39
Muchas gracias por tu ayuda, muy exacta tu respuesta,

Saludos
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

Comparación de campos

Publicado por Lalo (3 intervenciones) el 18/04/2018 17:04:46
Por que sale como resultado el mismo documento repetido 3 veces es decir como si fueran 3 partidas (por las partidas del asiento?) como puedo hacer que solo se muestre 1 sola linea por documento?

El código ahora esta así:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
SELECT T0.[DocDate],
T0.[DocNum] as #Factura, 
T0.[NumAtCard] as #Ref_SN, 
T0.[CardCode] as 'Cod_Cte/Prov',
T0.[CardName],
T1.[Dscription],
T1.[Price],
T0.[VatSum],
T0.[DocTotal],
T0.[DocTotalFC],
T0.[CurSource],
T1.[Project] AS 'Proyecto Facturas',
CASE WHEN T1.[Project]=T3.[Project] THEN ''
ELSE
T3.[Project]
END AS 'Proyecto Asiento',
T2.[TransId],
T3.[Account]
FROM OINV T0  INNER JOIN INV1 T1 ON T0.[DocEntry] = T1.[DocEntry] INNER JOIN OJDT T2 ON T0.[TransId] = T2.[TransId] INNER JOIN JDT1 T3 ON T2.[TransId] = T3.[TransId] WHERE T0.Series = '28' and T0.DocDate between [%0] and [%1]


1
2
3
4
5
6
7
8
9
10
#	Fecha de contabilización	#Factura	#Ref_SN	Cod_Cte/Prov
289	                    02/06/2017	2002462	1870A	C305
290                  	02/06/2017	2002462	1870A	C305
291                   	02/06/2017	2002462	1870A	C305
292	                    06/07/2017	2002485	1893A	C305
293                  	06/07/2017	2002485	1893A	C305
294                   	06/07/2017	2002485	1893A	C305
295                  	06/07/2017	2002486	1895A	C305
296	                    06/07/2017	2002486	1895A	C305
297                    	06/07/2017	2002486	1895A	C305


De antemano Gracias
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
Val: 67
Ha mantenido su posición en SQL Server (en relación al último mes)
Gráfica de SQL Server

Comparación de campos

Publicado por Ana (34 intervenciones) el 18/04/2018 17:52:24
Buenas,

Prueba a poner DISTINCT:

SELECT DISTINCT T0.[DocDate], .............................

A ver si con eso te funciona.

Un saludo
Ana
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

Comparación de campos

Publicado por Lalo (3 intervenciones) el 19/04/2018 01:26:11
Hola,

Gracias por la respuesta, no funcionó con el DISTINCT pero encontré que duplica por las cuentas del asiento de diario, por lo que solo aplique un desde el WHERE un filtro que reconozca el primer segmento de la cuenta de ventas y me dio el resultado correcto sin duplicados,

Gracias y saludos :)
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