Bartłomiej Dąbrowski

Bartłomiej Dąbrowski
analiza/przetwarzani
e danych

Temat: kwerenda tworząca tabelę (chyba)

Witam,

Chciałbym zapytać czy jest możliwość zmuszenia Access'a do stworzenia tabeli wynikowej jak na poniższym rysunku.


Obrazek


Tabela źródłowa to 3 kolumny. W każdej z kolumn wartości mogą się powtarzać. W kolumnie DESC mogą być także wartości puste (null?).
W tabeli jest tylko jedna kombinacja FPC & PLANT

Tabela wynikowa to macierz, w której:
1. w kolumnie 1 znajdują się unikatowe nr FPC
2. w pierwszym wierszu znajdują się unikatowe numery PLANT
3. na przecięciu się FPC i PLANT znajduje się odpowiadająca im wartość DESC

Czy jest możliwe ogarnięcie tego w jakiś sposób.
Rzeźba w Excel oczywiście jest możliwa ale przy dużych ilościach danych VLOOKUP i inne MATCH/INDEX nie radzą sobie zbyt dobrze.
Wartości DESC jest dla odmiany tyle, że zamiana ich na liczby, stworzenie pivota i ponowna zamiana liczb na wartości DESC też nie ma sensu...

link do pliku mdb z przykładowymi danymi

Pozdrawiam,
BartekBartłomiej Dąbrowski edytował(a) ten post dnia 19.10.11 o godzinie 15:28

Wojciech Gardziński

Wypowiedzi autora zostały ukryte. Pokaż autora
Michał Dziubek

Michał Dziubek Programista,
INFORM\'1

Temat: kwerenda tworząca tabelę (chyba)

Można zrobić tak:

TRANSFORM
Max(DESC) AS MaxDESC
SELECT
FPC
FROM
przyklad
GROUP BY
FPC
PIVOT
PLANT;


tylko co chcesz pokazać, jeżeli na przecięciu będzie wypadać więcej, niż jedna wartość? W tym przypadku pokaże najwiekszą wartość
Bartłomiej Dąbrowski

Bartłomiej Dąbrowski
analiza/przetwarzani
e danych

Temat: kwerenda tworząca tabelę (chyba)

Ło mamo! Jakie pikne! Dziękuję!
Więcej wartości nie będzie - zawsze jest tylko jedna "na przecięciu"
Z tym, że w efekcie otrzymuję tabelę z pustymi polami zarówno dla tych FPC posiadających PLANT (wartość DESC null) i dla tych, dla których nie ma PLANT
można je jakoś odróżnić (np. tekst "null" dla pustych i puste pole dla tych których nie ma - odpowiednik "#N/A" w moim przykładzie?)Bartłomiej Dąbrowski edytował(a) ten post dnia 19.10.11 o godzinie 16:21
Michał Dziubek

Michał Dziubek Programista,
INFORM\'1

Temat: kwerenda tworząca tabelę (chyba)

Efekt jak na przykładzie z Excela, zakładam że kolumna desc nie ma wartosci: (brak):

TRANSFORM
IIF(Max(D)="(brak)","",nz(Max(D),"#N/A")) AS MaxDesc
SELECT
FPC
FROM
(select
fpc
,plant
,NZ(desc,"(brak)") as D
from
przyklad) AS dt
GROUP BY
FPC
PIVOT
PLANT;

Wojciech Gardziński

Wypowiedzi autora zostały ukryte. Pokaż autora
Bartłomiej Dąbrowski

Bartłomiej Dąbrowski
analiza/przetwarzani
e danych

Temat: kwerenda tworząca tabelę (chyba)

Michał - dziękuję za dokładkę :)
Miodność - 100%
Działa jak trzeba.
Michał Dziubek

Michał Dziubek Programista,
INFORM\'1

Temat: kwerenda tworząca tabelę (chyba)

To zasługa skonstruowania pytania, czyli:
1. Przejrzyście opisany problem
2. Dokładnie opisane dane wejściowe i oczekiwany efekt
3. Przykładowa baza mdb.

Po prostu chce się odpowiadać;)
Bartłomiej Dąbrowski

Bartłomiej Dąbrowski
analiza/przetwarzani
e danych

Temat: kwerenda tworząca tabelę (chyba)

:)



Wyślij zaproszenie do