Cześć
Nie wiem jak rozwiązać taki problem. Mam tabelę w bazie danych, w której kolejne rekordy mają takie przykładowe wartości:
1. B B C A D A B C A C
2. A B C A B C D A B A
3. A C D B A A B A C C
Teraz potrzebuję pobrać taki rekord i przetworzyć go następująco. Liczę, które miejsce w szeregu zajmuje konkretna wartość, np. "A", i zapisuję wynik. Następnie zeruję licznik i liczę dalej do kolejnego wystąpienia "A" i zapisuję wynik. Jeśli ostatni ciąg kończy się daną wartością, dopisujemy 0 (brak kolejnych wartości). W efekcie powinienem dla podanych przykładów otrzymać takie wyniki:
1. 4 2 3 1 ("A" było czwarte, potem drugie, potem trzecie a następnie wystąpił ciąg niezakończony wartością "A" o długości 1 - musi być jakoś wyróżniony)
2. 1 3 4 2 0
3. 1 4 1 2 2
Prawdę mówiąc, nie wiem jak się do tego zabrać. Nie wiem czy jest jakaś funkcja, która coś takiego zrobi. Jedyne co przyszło mi do głowy to policzyć miejsca, na których "A" występuje i odejmować je od siebie. Czyli dla rekordu 2 działałoby to tak:
"A" jest 1, 4, 8 i 10. Długość ciągu = 10.
10 - 10 = 0 ("A" jest ostatnie)
10 - 8 = 2
8 - 4 = 4
4 - 1 = 3
1 - 0 = 1
Otrzymuję 0 2 4 3 1 i odwracam sobie do 1 3 4 2 0.
Niestety nie wiem jak to wykonać.
Pozdrawiam