Wojciech Gardziński

Wojciech Gardziński Mieć rację godzinę
wcześniej niż inni:
przez godzinę być
...

Temat: WYNALAZKI

Tutaj będą się pojawiały nowe rzeczy, jako kolejne "wypowiedzi".
(żeby było łatwo np. "obserwować" wątek)

Proszę o komentarze.
Wojciech G.Wojciech Gardziński edytował(a) ten post dnia 11.06.09 o godzinie 00:11
Wojciech Gardziński

Wojciech Gardziński Mieć rację godzinę
wcześniej niż inni:
przez godzinę być
...

Temat: WYNALAZKI

Jak stworzyć i uprościć bardzo skomplikowane zapytanie bazodanowe, by używać go w bardzo prostej funkcji w Excelu?

http://afin.net/webcasts/Demo_HowToSimplifyVeryComplic...

konto usunięte

Temat: WYNALAZKI

Typowe odkrywanie koła na nowo
dokładnie taką samą funkcjonalność tyle że szybciej ma tabela przestawna podpięta do zewnętrznego źródła danych. Chyba że jest jakaś magiczna funkcjonalność która mi umknęła a której nie oiągnę tabelą przestawną

mówimy tylko i wyłącznie o tym konkretnie przypadku
Wojciech Gardziński

Wojciech Gardziński Mieć rację godzinę
wcześniej niż inni:
przez godzinę być
...

Temat: WYNALAZKI

No oczywiście. Ja wiem, że to akurat(!) zadanie, tabela przestawna potrafi.
1) Ale już parametrycznie wybierać do raportu to nie
2) Wybierać po częściach tekstu (np. firmy na "A") - też nie
3) tabeli się nie da przesłać mejlem, bo źródło się zepsuje, a nawet jak się zrobi je w osobnym arkuszu, to tamten arkusz się zepsuje, itp.
4) funkcje WEŹZTABELI, czy jakoś tak, to w ogóle porażka...

Tabelą nie zrobi się takiego zadania:
http://afin.net/webcasts/Demo_MyDesiredReportFromManyE...

Wiemy, gdzie boli. ;)

Pzdr.Wojciech Gardziński edytował(a) ten post dnia 11.06.09 o godzinie 19:04

konto usunięte

Temat: WYNALAZKI

Wojciech Gardziński:
No oczywiście. Ja wiem, że to akurat(!) zadanie, tabela przestawna potrafi.
1) Ale już parametrycznie wybierać do raportu to nie

tak jak było w przykładzie
odpowiednikiem czegoś takiego jest pobranie do pivot Cache całego recordsetu i filtroanie na warunkach o like nie było mowy
zaletą pivota w takim przypadku jest szybkosć i możliwość dodania kolejnego grupowania adhoc czego w przypadku Pana rozwiązania nie da się zrobić
2) Wybierać po częściach tekstu (np. firmy na "A") - też nie

hola, przecież w tym przykładzie przeniósł Pan do SQL-a pobieranie roku i miesiąca z daty, to czemu nie przenieść pierwszego znaku ze stringu do kolejnej kolumny w zapytaniu z bazy?
3) tabeli się nie da przesłać mejlem, bo źródło się zepsuje, a nawet jak się zrobi je w osobnym arkuszu, to tamten arkusz się zepsuje, itp.

nie zauważyłem czegoś takiego
zaznaczamy ptaszka we właściwościach tabeli żeby miał dane i można wysyłać np. tabele wypełnione dynamicznym recordsetem - nie odwołują się do żadnego źródła danych a można robić wszystko oprócz odświeżenia
4) funkcje WEŹZTABELI, czy jakoś tak, to w ogóle porażka...

w zasadzie nie korzystam, jak musiałem to funkcja jak każda inna, zwraca wyniki

Tabelą nie zrobi się takiego zadania:
http://afin.net/webcasts/Demo_MyDesiredReportFromManyE...

fajne, w praktyce mało użyteczne bo wolne
Wiemy, gdzie boli. ;)

tzn?
Pzdr.Wojciech Gardziński edytował(a) ten post dnia 11.06.09 o godzinie 19:04
Wojciech Gardziński

Wojciech Gardziński Mieć rację godzinę
wcześniej niż inni:
przez godzinę być
...

Temat: WYNALAZKI

Przemysław R.:
Wojciech Gardziński:
No oczywiście. Ja wiem, że to akurat(!) zadanie, tabela przestawna potrafi.
1) Ale już parametrycznie wybierać do raportu to nie

tak jak było w przykładzie
odpowiednikiem czegoś takiego jest pobranie do pivot Cache całego recordsetu i filtroanie na warunkach o like nie było mowy
zaletą pivota w takim przypadku jest szybkosć i możliwość dodania kolejnego grupowania adhoc czego w przypadku Pana rozwiązania nie da się zrobić

Jak się nie da dodać grupowania?
Jak się zastosuje LIKE, a nie '=' (ja zastosowałem najprostsze dla celów pokazowych) to się da, co się chce.
Co do szybkości - to będzie dalej
2) Wybierać po częściach tekstu (np. firmy na "A") - też nie

hola, przecież w tym przykładzie przeniósł Pan do SQL-a pobieranie roku i miesiąca z daty, to czemu nie przenieść pierwszego znaku ze stringu do kolejnej kolumny w zapytaniu z bazy?
Jak wyżej. Ja nie mówię o dacie w tym przypadku, tylko o częściach tekstu, np A%, %X, __O% (np.na polu 'nazwa' (klienta)

3) tabeli się nie da przesłać mejlem, bo źródło się zepsuje, a nawet jak się zrobi je w osobnym arkuszu, to tamten arkusz się zepsuje, itp.

nie zauważyłem czegoś takiego
To niech Pan poćwiczy.
Niestety tu Excel ma niedoróbkę, polegającą na tym, że Query, czy też inne opcje bazodanowe, potrzebują XLQUERY.XLA, a to ma pewną ścisłą lokalizację na każdym stanowisku. Przesłanie mejlem przesyła widok tabeli, może przesłać i Recordseta - tu zgoda - ale ten Recorset się nie odświeży, chociażby dane były w tej samej lokalizacji - bo się nie połączy z ... Query. Niedoróbka.
zaznaczamy ptaszka we właściwościach tabeli żeby miał dane i można wysyłać np. tabele wypełnione dynamicznym recordsetem - nie odwołują się do żadnego źródła danych a można robić wszystko oprócz odświeżenia
Aha, jak Pan to wie, to OK. - doceniam!
4) funkcje WEŹZTABELI, czy jakoś tak, to w ogóle porażka...

w zasadzie nie korzystam, jak musiałem to funkcja jak każda inna, zwraca wyniki
Ale ma wadę - wymaga OTWARTEJ tabeli i ustawienia jej tak, żeby to, co chcemy, było widoczne. A tabele przestawne służą... do przestawiania.

Tabelą nie zrobi się takiego zadania:
http://afin.net/webcasts/Demo_MyDesiredReportFromManyE...

fajne, w praktyce mało użyteczne bo wolne
Nieprawda. 100 zapytań detalicznych/sek to szybciutko.
Ale ma Pan rację - w zastosowaniach serwerowych - nie.
Na to mamy inny wynalazek, ale tego nie mam jak pokazać na filmiku.
Wiemy, gdzie boli. ;)

tzn?
Że wiemy, gdzie boli i te bolączki, jedna po drugiej, eliminujemy. Po prostu.

Edit: literówki.. i pzdr.

Edit2: No to kolejny filmik, tego już sie nijak nie da ani tabelką, ani funkcjami. :)
http://afin.net/webcasts/Demo_HowToGetDataFromBudgetsI...Wojciech Gardziński edytował(a) ten post dnia 11.06.09 o godzinie 21:46

konto usunięte

Temat: WYNALAZKI

Wojciech Gardziński:
Jak się nie da dodać grupowania?
Jak się zastosuje LIKE, a nie '=' (ja zastosowałem najprostsze dla celów pokazowych) to się da, co się chce.
Co do szybkości - to będzie dalej

grupowanie wielostopniowe np. dział\wydział\sekcja z sumami dla poszczególnych grupowań

przyznam jest to wykonalne, wymaga jednak włożenia całkiem sporo pracy, zaś LIKE sprawy nie załatwi. Inna kwestia jak bym chciał dodać grupowanie w kolumnach to sprawa się komplikuje jeszcze bardziej

Jak wyżej. Ja nie mówię o dacie w tym przypadku, tylko o częściach tekstu, np A%, %X, __O% (np.na polu 'nazwa' (klienta)

fakt, tego się nie da zrobić bezpośrednio z tabeli, trzeba bawić się jakimś paskudnym SQL-em fuj ;)

To niech Pan poćwiczy.

muszę :( nie bez powodu unikam Query ;)
Niestety tu Excel ma niedoróbkę, polegającą na tym, że Query, czy też inne opcje bazodanowe, potrzebują XLQUERY.XLA, a to ma pewną ścisłą lokalizację na każdym stanowisku. Przesłanie mejlem przesyła widok tabeli, może przesłać i Recordseta - tu zgoda - ale ten Recorset się nie odświeży, chociażby dane były w tej samej lokalizacji - bo się nie połączy z ... Query. Niedoróbka.

prawdę powiedziawszy nie korzystam z Query, więc się nie wypowiem. Na co dzień wpompowuję recordset programowo do szablonu

Ale ma wadę - wymaga OTWARTEJ tabeli i ustawienia jej tak, żeby to, co chcemy, było widoczne. A tabele przestawne służą... do przestawiania.

Jeżeli chodzi o pobieranie danych to można zrobić n klonów tego samego pivotCache i przestawiać wedle uznania, dane odświeżają się tylko raz, zawartość można trzymać w ukrytym arkuszu jak kogoś w oczy kole, fakt to nie to samo i działa błyskawicznie

Pana funkcja jest defakto spraametryzowanym SQL-em dostosowanym do specyficznych potrzeb. W pewnych obszarach funkcjonalność pokrywa się z Pivotem, w pewnym z QueryTable

Nieprawda. 100 zapytań detalicznych/sek to szybciutko.

to zależy tylko i wyłącznie od operacji którą się wykonuje oraz ilości danych którą agregujemu

przypadek z filmiku to mała ilość danych więc mógł Pan jak najbardziej osiągnąć taką szybkość
Ale ma Pan rację - w zastosowaniach serwerowych - nie.
Na to mamy inny wynalazek, ale tego nie mam jak pokazać na filmiku.

właśnie dochodzimy do sedna :)
operacje które Pan pokazuje są fajne i szybkie w przypadku małej ilości danych. Jeżeli dane ciągną się w setki MB to przestaje być to takie zabawne
Dlatego swego czasu odszedłem od tego typu funkcji w Excelu na rzecz przeniesienia obliczeń albo do zapytania i zwróceniu całości albo do tabeli przestawnej
Wojciech Gardziński

Wojciech Gardziński Mieć rację godzinę
wcześniej niż inni:
przez godzinę być
...

Temat: WYNALAZKI

Szanowny!

Pozwoli Pan że zacznę niestandardowo..
Gratuluję wiedzy! Dawno sobie z nikim tak nie pogadałem o meritum. Jestem pod wrażeniem.

Zgadzam się chyba ze wszystkim, co Pan napisał.
Ale, ponieważ sobie tak dyskutujemy, wyjaśnię, jak (jednak) sobie radzę z problemami, o których Pan napisał - bo te problemy są rzeczywiste i nieźle je Pan wyszukał, nawet z filmiku.

Ad grupowania:
Ma Pan rację, robienie takich zapytań na niepogrupowanych danych, jest dalekie od efektywności. Więc ...
* Po 1.: W rzeczywistych zapytaniach (nie filmikowych) oczywiście dane grupuję. Ale, jak Pan widzi, Query to też załatwia - SUM(Wart_Zl), GROUP BY itp. (prościutko: klik na ikonce 'suma')
* Po 2.: SQL jako jedno zapytanie potrafi być baaaardzo skomplikowane - jak Pan to trafnie ujął - "fuj" (Będę korzystał z tego cytatu, jak Pan pozwoli?). Więc robimy tabele pośrednie, czyli kolejne stopnie przetwarzania. Wiem, że chwilę dłużej trwa, ale można wyklikać 1. zapytanie, potem drugie, aż osiągnie się efekt. Zaletą tego podejścia jest banalne wręcz "wyklikiwanie" a nie babranie się w fuj-SQLu. ;)
* Po 3,: Stosujemy jeszcze inne sposoby, z których chyba najciekawszy, to wrzucenie wszystkiego do kostki OLAPowej na samym końcu (Przykład: http://afin.net/webcasts/Demo_StandardBudgetCube.swf Ideolo: http://afin.net/articles/AfinNet_Article_AFIN.NET.IS_P... (Wyszukać tekst 'OQY, żeby za dużo nie czytać :) )

Ad. Pivot cache'y - Wiem, że tak się robi, ale problem odświeżania, niestety, POZOSTAJE(!).

Ad. Prędkości:
Na filmiku, to akurat prędkość nie jest rewelacyjna, bo, jak Pan słusznie zauważył, zapytanie nie jest efektywne. Kto by tam sumował dane z widoku z 5-ciu tabel? Filmik to przykład, że można tak zrobić.

I (tu chyba trzeba jakoś to wyróżnić, czy tez podkreślić, to PODKREŚLAM), dochodzimy rzeczywiście do sedna. Mamy pewien patent na szybkie zapytania z dowolnym grupowaniem, LIKE-ami itp., a mianowicie tzw. "AFQL" (dotyczy stricte zastosowań ksiegowych):
http://afin.net/articles/AfinNet_Article_AFQL_PL.htm

Przykładzik:
Księgowi stosują często takie zapytania: sw/010-sm/070 (to w AFQL-u) Oznacza to po informatycznemu: "Posumuj miarę (pole) 'sw' (saldo winien) konta dla filtru '070', a potem odejmij od tego sumę miary 'sm' (saldo ma) dla innego filtu: '070'."
Dla księgowego to po prostu "majątek trwały netto", dla informatyka - porażka.
Tabela - wysiada, funkcje Excela również, dane, dla utrudnienia - w pliku zewnętrznym. A tu działa:
http://afin.net/webcasts/Demo_FinStatmnt4.htm
http://afin.net/webcasts/Demo_FinStatmnt10.htm
Akurat tego przypadku nie ma na filmiku, więc musi mi Pan uwierzyć na słowo, albo... po prostu wypróbować... demko, klik, klik - jak na filmiku. I prędkość, o której wspominałem, dotyczy właśnie takich zapytań dla cubów ok. 1-Megabajtowych (Firma mniej więcej 10.000 kont księgowych, o długości pola 15 znaków. Robi wrażenie, no nie?)
A jeszcze, żeby już temat s(wy)kończyć, to dodam, że to działa również w zapytaniach SIECIOWYCH i to w architekturze klient serwer, czyli szybciutko. Też mamy na to patent.
Ale o tym w następnym odcinku ;)

Jeszcze raz, jak na wstępie.
Wojciech Gardziński

Wojciech Gardziński Mieć rację godzinę
wcześniej niż inni:
przez godzinę być
...

Temat: WYNALAZKI

(Przeniesione do osobnego wątku)

Kolejny temat:
Czy można wyklikać myszką hurtownię danych?

Czyli, niezależną od systemów transakcyjnych bazę danych, specjalizowaną dla celów analitycznych, odświeżaną automatycznie?
(tu: przykład prosty - jedna, szeroka tabela danych)

http://afin.net/webcasts/Demo_HowToCreateDataWarehouse...Wojciech Gardziński edytował(a) ten post dnia 16.06.09 o godzinie 09:56

konto usunięte

Temat: WYNALAZKI

technicznie rzecz ujmując Access jest zbędny, co najwyżej żeby sobie pooglądać wyniki :)

do stworzenia pliku mdb wystarczy ADOX i jedna komenda, silnik JET ma każdy wmontowany w Windows
Wojciech Gardziński

Wojciech Gardziński Mieć rację godzinę
wcześniej niż inni:
przez godzinę być
...

Temat: WYNALAZKI

(Techniczne)
Witam.
Na początku chciałem te wynalazki umieszczać w jednym wątku. Ale lepiej się nam sprawdza podejście "wynalazek=wątek", bo wiadomo o czym piszemy.

Poprzenoszę tematy do osobnych wątków i bardzo proszę o pranko dalej.

Następna dyskusja:

PRASTARE WYNALAZKI...




Wyślij zaproszenie do