@danilomartiniano, Boa tarde!
Seja bem-vindo!
Vamos a primeira parte, não é algo relativamente simples, mas segue query em MSSQLServer!
USE CORPORERM
GO
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;
SET NOCOUNT ON;
DECLARE @CODCOLIGADA INT = 1;
DECLARE @CODFILIAL INT = 0
DECLARE @DATAINICIAL DATETIME = '2025-03-01';
DECLARE @DATAFINAL DATETIME = '2025-03-31';
DECLARE @CODTRB VARCHAR(10) = 'INSSPJ'
;WITH TAB_GUIA
AS
(
SELECT
G.CODCOLIGADA
,G.IDPER
,P.CODFILIAL
,G.IDGUIA
,P.CODTRB
FROM DBO.DGUIAPERIODO G
JOIN DBO.DPERIODO P ON ( G.IDPER = P.IDPER AND G.CODCOLIGADA = P.CODCOLIGADA )
WHERE G.CODCOLIGADA = IIF(@CODCOLIGADA = 0, G.CODCOLIGADA, @CODCOLIGADA)
AND P.CODPER = @DATAINICIAL
AND P.FIMPER = @DATAFINAL
AND P.CODTRB = @CODTRB
)
SELECT
G.CODCOLIGADA
,G.CODFILIAL
,G.IDPER
,G.IDGUIA
,G.CODTRB
,I.IDLAF
,I.IDTRBITEM
,I.NUMITEM
,D.IDMOV
,T.NUMEROMOV
,T.CODTMV
FROM TAB_GUIA G
JOIN DBO.DTRBITEM I ON (G.CODCOLIGADA = I.CODCOLIGADA AND I.IDGUIA = G.IDGUIA )
JOIN DBO.DLAF D ON (I.CODCOLIGADA = D.CODCOLIGADA AND I.IDLAF = D.IDLAF)
LEFT JOIN DBO.TMOV T ON (D.CODCOLIGADA = T.CODCOLIGADA AND D.IDMOV = T.IDMOV )
OPTION (MAXDOP 1)
Sobre o histórico terei que verificar com o profile a fonte da informação em DPERIODO.DESCRICAO, mas acredito que seja um campo calculado no Insert.
Abraços