hace 5 años
Caro, deixo aqui a consulta que estou usando para obter o resumo da conta de um cliente específico e mostrar os dados como mostra o resumo da conta do tango, espero que sirva!
<code>
declare @CLIENTE_CODIGO int
set @CLIENTE_CODIGO = 1234 - INSIRA SEU NÚMERO DE CLIENTE AQUI
selecione GVA12.T_COMP como [tipo],
GVA12.N_COMP como [no],
IDENT_COMP,
GVA12.IMPORT,
ESTADO [estado],
isNull (gva46.VTO_DATE, '') como [vto],
DATE_EMIS como data,
(CASE GVA12.T_COMP
QUANDO 'REC' ENTÃO 0
ELSE
CASE GVA15.TIPO_COMP
QUANDO 'D' QUANTIDADE
ELSE 0
FIM
FIM) COMO [DEVE],
(CASE GVA12.T_COMP
QUANDO 'REC' ENTÃO
CASE
WHEN (GROUP_EMPRESARIO_COMP.COD_CLIENT NÃO É NULL) ENTÃO
isNull ((
selecione SUM (imp.IMPORT_CAN)
de gva12 como gva12_aux
deixou juntar gva07 como imp em
(gva12_aux.T_comp = imp.T_comp
E gva12_aux.N_comp = imp.N_comp
)
deixou juntar gva12 como gva12can_aux em
(Gva12Can_aux.T_comp = imp.T_comp_can
E Gva12Can_aux.N_comp = imp.N_comp_can)
onde imp.N_COMP_CAN = gva12.N_COMP
e imp.T_COMP_CAN = gva12.T_COMP
e gva12_aux.COD_CLIENT = GRUPO_EMPRESARIO_COMP.COD_CLIENT
), 0
)
ELSE
AMOUNT - isnull ((selecione SUM (imp.import_can) em GVA07 como imp, onde imp.N_COMP_CAN = GVA12.N_COMP e imp.T_COMP_CAN = GVA12.T_COMP e imp.MISMO_CLIE = 0), 0)
FIM
ELSE
CASE GVA15.TIPO_COMP
QUANDO 'D' ENTÃO 0
ELSE IMPORT - isnull ((selecione SUM (imp.import_can) em GVA07 como imp, onde imp.N_COMP_CAN = GVA12.N_COMP e imp.T_COMP_CAN = GVA12.T_COMP e imp.MISMO_CLIE = 0), 0)
FIM
END) AS [TENDO],
(
SELECIONAR SOMA (T. IMPORTAÇÃO) DE (
selecione GVA12.T_COMP,
GVA12.N_COMP,
GVA12.DATE_Emis,
GVA12.HORA_COMP,
(CASE GVA12.T_COMP
QUANDO 'REC' ENTÃO
CASE
WHEN (GROUP_EMPRESARIO_COMP.COD_CLIENT NÃO É NULL) ENTÃO
- isNull ((
selecione SUM (imp.IMPORT_CAN)
de gva12 como gva12_aux
deixou juntar gva07 como imp em
(gva12_aux.T_comp = imp.T_comp
E gva12_aux.N_comp = imp.N_comp
)
deixou juntar gva12 como gva12can_aux em
(Gva12Can_aux.T_comp = imp.T_comp_can
E Gva12Can_aux.N_comp = imp.N_comp_can)
onde imp.N_COMP_CAN = gva12.N_COMP
e imp.T_COMP_CAN = gva12.T_COMP
e gva12_aux.COD_CLIENT = GRUPO_EMPRESARIO_COMP.COD_CLIENT
), 0
)
ELSE
- (AMOUNT - isnull ((selecione SUM (imp.import_can)) em GVA07 como imp onde imp.N_COMP_CAN = GVA12.N_COMP e imp.T_COMP_CAN = GVA12.T_COMP e imp.MISMO_CLIE = 0), 0)
FIM
ELSE
CASE GVA15.TIPO_COMP
QUANDO 'D' QUANTIDADE
ELSE
CASE
WHEN (GROUP_EMPRESARIO_COMP.COD_CLIENT NÃO É NULL) ENTÃO
- isNull ((
selecione SUM (imp.IMPORT_CAN)
de gva12 como gva12_aux
deixou juntar gva07 como imp em
(gva12_aux.T_comp = imp.T_comp
E gva12_aux.N_comp = imp.N_comp
)
deixou juntar gva12 como gva12can_aux em
(Gva12Can_aux.T_comp = imp.T_comp_can
E Gva12Can_aux.N_comp = imp.N_comp_can)
onde imp.N_COMP_CAN = gva12.N_COMP
e imp.T_COMP_CAN = gva12.T_COMP
e gva12_aux.COD_CLIENT = GRUPO_EMPRESARIO_COMP.COD_CLIENT
), 0
)
ELSE
- (AMOUNT - isnull ((selecione SUM (imp.import_can)) em GVA07 como imp onde imp.N_COMP_CAN = GVA12.N_COMP e imp.T_COMP_CAN = GVA12.T_COMP e imp.MISMO_CLIE = 0), 0)
FIM
FIM
END) AS [VALOR],
LEGEND
de gva12
left JUNTE-SE AO GVA46
GVA46.N_COMP = GVA12.N_COMP AND
GVA46.T_COMP = GVA12.T_COMP
Junte-se à esquerda gva15 ON
(GVA15.IDENT_COMP = GVA12.T_COMP)
junção esquerda (
selecione distinto
Gva12CanGE.T_comp
, Gva12CanGE.N_comp
, GVA12GE.COD_CLIENT
, gva12canGE.COD_CLIENT como COD_CLIENT_CAN
-, Gva12Can.DATE_EMIS
de gva12 AS GVA12GE
deixou juntar gva07 AS GVA07GE em
(Gva12GE.T_comp = Gva07GE.T_comp
E Gva12GE.N_comp = Gva07GE.N_comp
)
deixou juntar gva12 como gva12canGE em
(Gva12CanGE.T_comp = Gva07GE.T_comp_can
E Gva12CanGE.N_comp = Gva07GE.N_comp_can)
em que gva12GE.COD_CLIENT <> gva12canGE.COD_CLIENT
AND gva12GE.COD_CLIENT = @CLIENTE_CODIGO
) como GRUPO_EMPRESARIO_COMP em
GRUPO_EMPRESARIO_COMP.N_COMP = GVA12.N_COMP
e GRUPO_EMPRESARIO_COMP.T_COMP = GVA12.T_COMP
em que GVA12.COD_CLIENT = @CLIENTE_CODIGO OU GRUPO_EMPRESARIO_COMP.COD_CLIENT = @CLIENTE_CODIGO
e não esteve em ('ANU', '***')
) t
WHERE ((T. DATE_EMIS <gva12.DATE_EMIS)
ou (T. DATE_EMIS = gva12.DATE_EMIS
e T.T_COMP <gva12.T_COMP)
ou (T. DATE_EMIS = gva12.DATE_EMIS
e T.T_COMP = gva12.T_COMP
e T.N_COMP <= gva12.N_COMP)
)
) como [Saldo],
LEGEND
de gva12
left JUNTE-SE AO GVA46
GVA46.N_COMP = GVA12.N_COMP AND
GVA46.T_COMP = GVA12.T_COMP
Junte-se à esquerda gva15 ON
(GVA15.IDENT_COMP = GVA12.T_COMP)
junção esquerda (
selecione distinto
Gva12CanGE.T_comp
, Gva12CanGE.N_comp
, GVA12GE.COD_CLIENT
, gva12canGE.COD_CLIENT como COD_CLIENT_CAN
-, Gva12Can.DATE_EMIS
de gva12 AS GVA12GE
deixou juntar gva07 AS GVA07GE em
(Gva12GE.T_comp = Gva07GE.T_comp
E Gva12GE.N_comp = Gva07GE.N_comp
)
deixou juntar gva12 como gva12canGE em
(Gva12CanGE.T_comp = Gva07GE.T_comp_can
E Gva12CanGE.N_comp = Gva07GE.N_comp_can)
em que gva12GE.COD_CLIENT <> gva12canGE.COD_CLIENT
AND gva12GE.COD_CLIENT = @CLIENTE_CODIGO
) como GRUPO_EMPRESARIO_COMP em
GRUPO_EMPRESARIO_COMP.N_COMP = GVA12.N_COMP
e GRUPO_EMPRESARIO_COMP.T_COMP = GVA12.T_COMP
where (GVA12.COD_CLIENT = @CLIENTE_CODIGO OU GRUPO_EMPRESARIO_COMP.COD_CLIENT = @CLIENTE_CODIGO)
e não esteve em ('ANU', '***')
ordenar por DATE_EMIS asc, digite asc
</code>
¿Realmente quieres cerrar esta reparación?
Sí
No
¿Realmente quieres reabrir esta reparación?
Sí
No
¿Realmente quieres borrar este post?
Sí
No