Marcin S.

Marcin S. BI Consultant, ETL
developer

Temat: Ograniczenie wyswietlania do jednego rekordu z tabeli

Witam,

z pola tekstowego TEXT tabeli ACTIVITY wyciagam date i godzine w takiej postaci:
18-Lis-2012 15:16 (GMT-7:00)

Wykorzystuje do tego formule:

if {ACTIVITY.TYPE}=011 then
(Mid({ACTIVITY.TEXT},1,28))
else ''

Niestety okazuje sie, ze dla tego samego TYPE = 011, moze byc wiecej niz jeden rekord w tabeli, np:

21-Lis-2011 15:16 (GMT-7:00)
21-Lis-2011 16:17 (GMT-7:00)
21-Lis-2011 16:48 (GMT-7:00)
21-Lis-2011 17:01 (GMT-7:00)

Klient chce wyswietlac jeden najaktualniejszy wpis, czyli w tym przypadku 21-Lis-2011 17:01 (GMT-7:00) .

Rekordy w tabeli maja swoje id, ale nie sa numerowane po kolei (poz_id to pozycja w systemie, dla ktorej jest generowany raport), np:

id | poz_id | type | text
----------------------------------------------------------------------------
1008 | 1200 | 011 | 21-Lis-2011 15:16 (GMT-7:00) : ciag dalszy tekstu...
1012 | 1200 | 011 | 21-Lis-2011 16:17 (GMT-7:00) : ciag dalszy tekstu...
1016 | 1200 | 011 | 21-Lis-2011 16:48 (GMT-7:00) : ciag dalszy tekstu...
1034 | 1200 | 011 | 21-Lis-2011 17:01 (GMT-7:00) : ciag dalszy tekstu...

Ze wzgledu na dotychczasowa konstrukcje raportu, w/w formule mam w podraporcie, w ktorym sa wyswietlane jeszcze inne informacje, m.in. data i godzina dla innej wartosci pola TYPE.
W podraprocie jest grupowanie po polu POZ_ID.

Bede wdzieczny za sugestie dot. rozwiazania - jak ograniczyc wyswietlanie na raporcie do jednego rekordu, w tym przypadku rekord z id=1034.

Pozdrawiam.Marcin S. edytował(a) ten post dnia 15.10.12 o godzinie 14:40

konto usunięte

Temat: Ograniczenie wyswietlania do jednego rekordu z tabeli

Czy te dane sa czescia wiekszego zapytania?

Jezeli nie, i interesuje Cie tylko i tylko ta linia to najprosciej jest przekonwertowac str-date do daty i zrobic na niej ORDER BY data DESC a w SELECT dac TOP 1

TU (KonwersjaDatyDoDaty - musisz sobie poszukac jak ;)):
SELECT TOP 1 id, poz_id, type, text FROM "TwojaTabela"
ORDER BY KonwersjaDatyDoDaty(text) DESC
Marcin S.

Marcin S. BI Consultant, ETL
developer

Temat: Ograniczenie wyswietlania do jednego rekordu z tabeli

Rafał Ziółkowski:
Czy te dane sa czescia wiekszego zapytania?

Jezeli nie, i interesuje Cie tylko i tylko ta linia to najprosciej jest przekonwertowac str-date do daty i zrobic na niej ORDER BY data DESC a w SELECT dac TOP 1

TU (KonwersjaDatyDoDaty - musisz sobie poszukac jak ;)):
SELECT TOP 1 id, poz_id, type, text FROM "TwojaTabela"
ORDER BY KonwersjaDatyDoDaty(text) DESC

Top 1 nie da rady, chociazby dlatego ze w Oraclu nie ma takiego czegos ;)
A jesli dobrze Cie rozumiem, to sugerujesz command w podraporcie ? Jak napisalem, w podraporcie sa jeszcze inne dane ciagniete z innych tabel i widokow.
No i dlaczego konwertowac date ? Sortowac moge po id

konto usunięte

Temat: Ograniczenie wyswietlania do jednego rekordu z tabeli

Eee tam nie ma:
http://stackoverflow.com/questions/3451534/how-to-do-t...

Co do konwersji daty to sam napisales:
Rekordy w tabeli maja swoje id, ale nie sa numerowane po kolei (poz_id to pozycja w systemie, > dla ktorej jest generowany raport), np:
Marcin S.

Marcin S. BI Consultant, ETL
developer

Temat: Ograniczenie wyswietlania do jednego rekordu z tabeli

Rafał Ziółkowski:
Eee tam nie ma:
http://stackoverflow.com/questions/3451534/how-to-do-t...

Co do konwersji daty to sam napisales:
Rekordy w tabeli maja swoje id, ale nie sa numerowane po kolei

zgadza sie, jest rownum=1, top 1 nie ma - potraktowalem doslownie ;)
Dlaczego nie moge sortowac po id dla tego samego poz_id i type, nawet jesli id nie leci po kolei ?
Marcin S.

Marcin S. Programista, trener
i konsultant w
zakresie .NET/.NET
Cor...

Temat: Ograniczenie wyswietlania do jednego rekordu z tabeli

A może proste Crystalowe rozwiązanie - przenieś rekord do stopki grupy lub raportu ;-)
Pamiętaj tylko o posortowaniu rekordów.
Marcin S.

Marcin S. BI Consultant, ETL
developer

Temat: Ograniczenie wyswietlania do jednego rekordu z tabeli

Marcin Sulecki:
A może proste Crystalowe rozwiązanie - przenieś rekord do stopki grupy lub raportu ;-)
Pamiętaj tylko o posortowaniu rekordów.

tak, wpadlem na to jeszcze wczoraj ;)
posortowalem po id malejaco, wrzucilem formule do stopki grupy (pozostale informacje rowniez sa w stopce grupy - jest grupowanie po poz_id).

do formuly dorzucilem ChrW(13) i odznaczylem 'Can Grow'.
if {ACTIVITY.TYPE}=011 then
(Mid({ACTIVITY.TEXT},1,28) + (ChrW(13)))
else ''

Następna dyskusja:

Database Expert - ogranicze...




Wyślij zaproszenie do