SQL Server - busqueda de monto

 
Vista:
sin imagen de perfil
Val: 12
Ha aumentado su posición en 3 puestos en SQL Server (en relación al último mes)
Gráfica de SQL Server

busqueda de monto

Publicado por mario (15 intervenciones) el 04/11/2017 18:26:00
Hola, saludos gracias de antemano necesito ayuda

Facturacion_Tarj_Det_Doc Facturacion_Tarj_Desc_Doc Facturacion_Ventas
Num_Reg Num_Reg Num_Reg
Valor Num_doc Valor
Tip_doc
Fecha

Estas son las tablas que tengo de la tabla "Facturacion_Tarj_Desc_Doc" filtro la fecha y tip_Doc, pero lo que deseo es que cuando muestre los resultados si el campo ' Tip_doc' = 22 que tome el campo 'valor' de la tabla 'Facturacion_Tarj_Det_Doc' y si el campo ' Tip_doc' = 5 que tome el campo 'Valor' de la tabla 'Facturacion_Ventas'

esto es lo que yo tengo:

SELECT dbo.[Facturacion Tarj Desc Doc].NUM_DOC, dbo.[Facturacion Tarj Desc Doc].TIP_DOC, dbo.[Facturacion Tarj Desc Doc].FECHA,
(CASE dbo.[Facturacion Tarj Desc Doc].TIP_DOC WHEN 22 THEN dbo.[Facturacion Tarj Det Doc].VALOR else dbo.[Facturacion Ventas].VALOR END) * - 1 AS Monto,
dbo.[Facturacion Tarj Desc Doc].COD_SUC, dbo.[Facturacion Tarj Desc Doc].COD_DIA
FROM dbo.[Facturacion Tarj Desc Doc] INNER JOIN
dbo.[Facturacion Tarj Det Doc] ON dbo.[Facturacion Tarj Desc Doc].NUM_REG = dbo.[Facturacion Tarj Det Doc].NUM_REG left JOIN
dbo.[Facturacion Ventas] ON dbo.[Facturacion Tarj Desc Doc].NUM_REG = dbo.[Facturacion Ventas].NUM_REG
WHERE (dbo.[Facturacion Tarj Desc Doc].FECHA = CONVERT(DATETIME, '2017-08-03 00:00:00', 102)) AND
(dbo.[Facturacion Tarj Desc Doc].TIP_DOC = '5' OR dbo.[Facturacion Tarj Desc Doc].TIP_DOC = '22')

pero solo me muestra los de valor '22'
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 C.P. Daviel
Val: 2
Ha aumentado su posición en 47 puestos en SQL Server (en relación al último mes)
Gráfica de SQL Server

busqueda de monto

Publicado por C.P. Daviel (1 intervención) el 03/12/2017 20:35:20
En vez de Join o Inner Join utiliza Left Outer Join, de esa manera te dará el resultado de uno o de otro en tu Case When:

1
2
Left Outer Join dbo.[Facturacion Tarj Det Doc] ON dbo.[Facturacion Tarj Desc Doc].NUM_REG = dbo.[Facturacion Tarj Det Doc].NUM_REG
Left Outer Join dbo.[Facturacion Ventas] ON dbo.[Facturacion Tarj Desc Doc].NUM_REG = dbo.[Facturacion Ventas].NUM_REG

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