Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Pessoal,
Preciso muito da ajuda de vocês me ajudar a criar uma expressão da seguinte forma:
Possuo uma tabela onde informa os grupos de pneus por veículo, gostaria que informasse o veículo "Frota"
que tivesse uma variação de 2 mm.
Exemplo:
Posição | Nº Fogo | Eixo | Frota - 240 | Grupo | Menor mm |
ETEE4 | 36400 | 7 | 3247 | 10 | 8,64 |
ETEI4 | 36399 | 7 | 3247 | 10 | 9,69 |
Possuo estas informações, porém necessito que a expressão me informe se o "Grupo" deste "Frota" contém uma variação de 2 mm (maior ou menor).
Em anexo segue base e qvw para melhor ajuda-los. !
Isso deve bastar:
Base_Temp:
LOAD
Posição,
"Nº Fogo",
Eixo,
"Frota - 240",
Grupo,
"Menor mm"
FROM [lib://Download/Base.xls](biff, embedded labels, table is Sheet1$);
Base:
LOAD
*,
If(fAbs(Diferenca_MM)>=2,'NOK','OK') as Situacao;
LOAD
*,
If("Frota - 240"=Previous("Frota - 240") and Grupo=Previous(Grupo),RangeSum("Menor mm",-Previous("Menor mm")),0) as Diferenca_MM
Resident Base_Temp Order By "Frota - 240",Grupo Asc;
Drop Table Base_Temp;
Infelizmente até o momento não consegui.
nicolett.yuri, rphpacheco, vocês conseguem me ajudar por favor?
Ainda não entendi o que você quer...
Quer uma coluna dizendo se o mm está menor que 2? é isso? ou um filtro?
Boa tarde Diego
Não consigo abrir seu qvw mas pela planilha eu cheguei no resultado abaixo:
[XR]:
LOAD Posição,
[Nº Fogo],
Eixo,
[Frota - 240],
Grupo,
[Menor mm],
Peek ([Menor mm]) as Teste,
F7,
F8,
F9
FROM
(biff, embedded labels, table is Sheet1$);
NoConcatenate y:
LOAD
Grupo,
Teste -[Menor mm] as diferença,
If(Teste -[Menor mm]>=2,'Menor','Maior') as RP
RESIDENT [XR];
OU
NoConcatenate y:
LOAD
Grupo,
Sum(Teste -[Menor mm]) as diferença,
If(sum(Teste -[Menor mm])>=2,'Menor','Maior') as RP
RESIDENT [XR]
Group by Grupo;
Primeiramente obrigado pelo tempo de cada um de vocês.
Só esclarecendo um pouco.
Preciso que alguma expressão ou campo me informe se existe alguma variação dentro do Grupo* que a diferença seja igual ou maior do que 2.
Grupo* = Cada veículo possui grupos e dentro de cada grupo contém dois pneus (nº de fogo);
Pneu* = cada pneu possui uma Milimetragem;
Exemplo de ocorrência:
Dentro do frota (veículo) possui o grupo “6” que possui dois pneus, a variação entre eles [Menor MM] precisa ser igual ou maior do que 2 para que me informe (Desparelhamento).
A seguir segue uma ocorrência.
Nº Fogo | Eixo | Frota - 240 | Grupo | Menor mm | Posição | Ok? | ||
22909 | 3 | 3102 | 6 | 14 | ETDE3 | Nok | ||
30088 | 3 | 3102 | 6 | 12 | ETDI3 | Nok | <- | a diferença entre os dois foi igual ou maior que dois |
30061 | 3 | 3111 | 3 | 2,42 | ETEI3 | Ok | ||
30063 | 3 | 3111 | 3 | 4,19 | ETEE3 | Ok | <- | a diferença entre os dois foi menor do que 2 |
Obrigado pela Ajuda elvis.schwarz
Só esclarecendo um pouco.
Preciso que alguma expressão ou campo me informe se existe alguma variação dentro do Grupo* que a diferença seja igual à 2 (positivo ou negativo)
Grupo* = Cada veículo possue grupos e dentro de cada grupo contém dois pneus (nº de fogo);
Pneu* = cada pneu possui uma Milimetragem;
Exemplo de ocorrência:
Dentro do frota (veículo) possui o grupo “6” que possui dois pneus, a variação entre eles [Menor MM] precisa ser igual ou maior do que 2 para que me informe (Desparelhamento).
A seguir segue uma ocorrência.
Nº Fogo | Eixo | Frota - 240 | Grupo | Menor mm | Posição | Ok? | ||
22909 | 3 | 3102 | 6 | 14 | ETDE3 | Nok | ||
30088 | 3 | 3102 | 6 | 12 | ETDI3 | Nok | <- | a diferença entre os dois foi igual ou maior que dois |
30061 | 3 | 3111 | 3 | 2,42 | ETEI3 | Ok | ||
30063 | 3 | 3111 | 3 | 4,19 | ETEE3 | Ok | <- | a diferença entre os dois foi menor do que 2 |
Eis uma forma de fazer:
Base_Temp:
LOAD
Posição,
"Nº Fogo",
Eixo,
"Frota - 240",
Grupo,
"Menor mm"
FROM [lib://Download/Base.xls](biff, embedded labels, table is Sheet1$);
Base:
LOAD
*,
If(fAbs(Diferenca_MM)>=2,'NOK','OK') as Situacao;
LOAD
*,
If(Grupo=Previous(Grupo),RangeSum("Menor mm",-Previous("Menor mm")),"Menor mm") as Diferenca_MM
Resident Base_Temp Order By Grupo Asc;
Drop Table Base_Temp;
Resultado:
Thiago,
Obrigado.
Mas os valores deram divergentes, o veículo terá que ser considerado além do grupo.
Exp:
Veículo: 3103
Grupo: 3
Nº Fogo: 30086
Menor MM: 12
Nº Fogo: 30100
Menor MM: 10
Isso sim é uma inconsistência, pois os pneus do grupo 3 do veículo 3103 estão com uma diferença igual ou maior que dois.
Isso deve bastar:
Base_Temp:
LOAD
Posição,
"Nº Fogo",
Eixo,
"Frota - 240",
Grupo,
"Menor mm"
FROM [lib://Download/Base.xls](biff, embedded labels, table is Sheet1$);
Base:
LOAD
*,
If(fAbs(Diferenca_MM)>=2,'NOK','OK') as Situacao;
LOAD
*,
If("Frota - 240"=Previous("Frota - 240") and Grupo=Previous(Grupo),RangeSum("Menor mm",-Previous("Menor mm")),0) as Diferenca_MM
Resident Base_Temp Order By "Frota - 240",Grupo Asc;
Drop Table Base_Temp;