Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Boa tarde,
Uma dúvida. Observem a imagem abaixo:
Observações:
1) É a mesma NF para todos registros (o campo que difere não está relacionado nessa imagem)
Problema
1) SE tiver apenas UM registro na ultima columa (PEDIDO ATENDIDO) de 'S-Atendido', todos os demais registros também devem ficar 'S-Atendido'.
Alguem ajuda?
Obrigado
1) Crie um mapa
Mapping_ocorren:
mapping LOAD
NOTA_FISCAL,
CONCAT(DISTINCT OCORREN,',') AS OCORRENCIAS_PEDIDO
FROM seuqvd(qvd)
GROUP BY NOTA_FISCAL ;
2) Use esse mapa para calcular seu campo
IF(Index(ApplyMap('Mapping_ocorren',NOTA_FISCAL,''),'2021')>0,'S-Atendido',
IF(Index(ApplyMap('Mapping_ocorren',NOTA_FISCAL,''),'2001')>0,'D-Devolução',
IF(Index(ApplyMap('Mapping_ocorren',NOTA_FISCAL,''),'2003')>0,'P-Parcial','A-Aberto'))) AS PEDIDO_ATENDIDO,
Posta o pedaço do script que lê o QVD
Boa tarde, já tentou:?
if([PEDIDO ATENDIDO] LIKE 'S-Atendido', 'S-Atendido')
IF(ApplyMap('Mapping_MenorData', NOTA_FISCAL, Null()) <= DAT_ENTREGA_TRANS,'S','N') AS PEDIDO_NO_PRAZO_OTD,
IF(POSSUI_CORTE<>'S','S','N') AS PEDIDO_ATENDIDO_COMPLETO,
// IF(Index(ApplyMap('Mapping_Data_motivos',NOTA_FISCAL,''),'2021')>0,'S-Atendido',
// IF(Index(ApplyMap('Mapping_Data_motivos',NOTA_FISCAL,''),'2001')>0,'D-Devolução',
// IF(Index(ApplyMap('Mapping_Data_motivos',NOTA_FISCAL,''),'2003')>0,'P-Parcial','A-Aberto'))) AS PEDIDO_ATENDIDO,
// ESSE TRECHO PRECISA TER ESSE MOTIVO_OCORREN E COLOCAR PARA TODOS OS OUTROS REGISTROS O MESMO STATUS
IF(MOTIVO_OCORREN=2021,'S-Atendido',
IF(MOTIVO_OCORREN=2001,'D-Devolução',
IF(MOTIVO_OCORREN=2003,'P-Parcial','A-Aberto'))) AS PEDIDO_ATENDIDO,
// ESSE TRECHO PRECISA TER ESSE MOTIVO_OCORREN E COLOCAR PARA TODOS OS OUTROS REGISTROS O MESMO STATUS
IF(Index(ApplyMap('Mapping_Motivos',NOTA_FISCAL,''),'2021')>0,'S',
IF(Index(ApplyMap('Mapping_Motivos',NOTA_FISCAL,''),'2001')>0,'S',
IF(Index(ApplyMap('Mapping_Motivos',NOTA_FISCAL,''),'2003')>0,'S','N'))) AS PEDIDO_NO_PRAZO
FROM
$(vODS)\V_TIROLEZ_PEDIDO_PERFEITO.qvd
(qvd);
// 1o crie um mapa
MapaStatus:
Mapping LOAD
NUMPEDIDO AS De
'S-Atendido'as Para
FROM
$(vODS)\V_TIROLEZ_PEDIDO_PERFEITO.qvd(qvd)
where MOTIVO_OCORREN=2021;
Dai no seu "load"
LOAD
// outros campos
Applymap('MapaStatus',NUMPEDIDO, // Se tiver pelo menos um atendido irá retornar o mapa
IF(MOTIVO_OCORREN=2021,'S-Atendido', // se nao tiver, calcula
IF(MOTIVO_OCORREN=2001,'D-Devolução',
IF(MOTIVO_OCORREN=2003,'P-Parcial','A-Aberto'))) as PEDIDO_ATENDIDO
FROM
$(vODS)\V_TIROLEZ_PEDIDO_PERFEITO.qvd(qvd)
Nesse seu exemplo, eu vou ter que fazer um Mapping Load para cada MOTIVO_OCORREN?
Aliás não entendi pq vc colocou o NUM PEDIDO no Mapa ao invés da NOTA FISCAL.
Tenho 3 status para o MOTIVO_OCORREN:
1. 2021 (no seu exemplo)
2. 2001
3. 2003
Se entendi sua lógica não
O mapa será composto apenas dos pedidos que tem MOTIVO_OCORREN = 2021 // Atendido, correto?
Quando o mapa for aplicado, ele vai:
Veja se compreende meu exemplo por favor.
Tem como anexar uma amostra com vários cenários?
Pode ser Excel ou csv
Boa noite,
Se eu tivesse apenas 1 status (S-Atendido) funcionaria.
Mas no caso tenho: