Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Em uma tabela de vendas, eu quero pegar apenas a última venda de cada vendedor (ordem:data e hora mais recente). Ex:
Tabela Origem:
Vendedor | Data | Hora | Produto |
Péricles | 10/04/2012 | 12:00 | Webcam |
Marcelo | 11/04/2012 | 13:00 | Celular |
Paulo | 12/04/2012 | 14:00 | Pen Drive |
Paulo | 25/04/2012 | 16:00 | Webcam |
Péricles | 13/04/2012 | 09:00 | Webcam |
Péricles | 14/04/2012 | 11:00 | Celular |
Péricles | 25/04/2012 | 14:00 | Pen Drive |
Marcelo | 25/04/2012 | 15:00 | Celular |
Marcelo | 12/04/2012 | 17:00 | Webcam |
Tabela Resultante:
Vendedor | Data | Hora | Produto |
Péricles | 25/04/2012 | 14:00 | Pen Drive |
Marcelo | 25/04/2012 | 15:00 | Celular |
Paulo | 25/04/2012 | 16:00 | Webcam |
Script Tabela Origem:
VENDAS:
LOAD * INLINE [
Vendedor, Data, Hora, Produto
Péricles, 10/04/2012, 12:00, Webcam
Marcelo, 11/04/2012, 13:00, Celular
Paulo, 12/04/2012, 14:00, Pen Drive
Paulo, 25/04/2012, 16:00, Webcam
Péricles, 13/04/2012, 09:00, Webcam
Péricles, 14/04/2012, 11:00, Celular
Péricles, 25/04/2012, 14:00, Pen Drive
Marcelo, 25/04/2012, 15:00, Celular
Marcelo, 12/04/2012, 17:00, Webcam
];
Olá Pericles,
Também não entendi o comportamento do MaxString, ele deveria trazer o resultado correto, funcionando como um Max do agrupamento, algo como o que acontece com o SQL, mas...
Fazendo uma junção da ideia do Cesar com a minha e depois de alguns teste, cheguei no script abaixo, dá o resultado que você precisa, o que é mais importante. Rsrsrrs...
Como o MaxString está fazendo correto com a data, agrupando pelo Vendedor ou pelo Produto, no scrpt abaixo funciona.
Abraço.
Temp:
LOAD Vendedor,
Date#(Data&' '&Hora,'dd/MM/yyyy HH:mm') as Data,
Produto
INLINE [
Vendedor, Data, Hora, Produto
Péricles, 10/04/2012, 12:00, Webcam
Marcelo, 11/04/2012, 13:00, Celular
Paulo, 12/04/2012, 14:00, Pen Drive
Paulo, 25/04/2012, 16:00, Webcam
Péricles, 13/04/2012, 09:00, Webcam
Péricles, 14/04/2012, 11:00, Celular
Péricles, 25/04/2012, 14:00, Pen Drive
Marcelo, 25/04/2012, 15:00, Celular
Marcelo, 12/04/2012, 17:00, Webcam
];
Vendas:
LOAD Vendedor,
MaxString(Data) as Data
Resident Temp
Group By Vendedor;
Left Join (Vendas)
LOAD Produto,
MaxString(Data) as Data
Resident Temp
Group By Produto;
DROP Table Temp;
Perfeito !
Eu tinha conseguido já fazendo um "Bacalhau" com operações de String, mas esse é o formal.
Valeu pela força.