
MS Access - promoc s dotazem (query)
Ahoj,
potreboval bych pomoci s jednou query v MS access. Mam tabulku s nasledujicimi sloupci a datovymi typy:
Cislo Objednavky: text ci long integer
Polozka objednavky: text ci long integer
Cislo dokumentu (faktura ci objednavka): text ci long integer
Polozka dokumentu (faktura ci objednavka): text ci long integer
Datum vytvoreni: date
Datum zauctovani: date
Datum dokumentu: date
Mnozstvi: double
Castka: double
Typ: text ci long integer
Vytvoril jsem si query, ktera mi vrati pro jednu objednavku a jednu jeji polozku objednavky (funkce group by) soucet mnozstvi, castky a dale minimum data zauctovani, vytvoreni a data dokumentu.
Cislo Objednavky GROUP BY
Polozka objednavky GROUP BY
Datum vytvoreni MIN
Datum zauctovani MIN
Datum dokumentu MIN
Mnozstvi SUM
Castka SUM
Typ WHERE "A"
Toto funguje dobre, avsak potreboval bych rozsirit, aby se mi zobrazilo i cislo dokumentu zaznamu, kde je napr. datum vytvoreni minimalni. Toto pole do GROUP BY kriteria pridat nemohu, protoze by me to rozsirilo pocet zaznamu a groupovalo i podle toho pole. Minimum z dat adokumentu take nemohu pouzit, nebot to vybere nejmensi cislo dokumentu, bez ohledu na to, zda odpovida zaznamu s minimalnim datem. Vesmes potrebuji zobrazit cislo dokumentu odpovidajici zaznamu s minimalnim Datem vytvoreni (vzdy ze skupiny urcene jednim cislem objednavky).
V query designu, kde jsem vytvoril vyse uvedenou query mi toto nefunguje, a napsat sql dotaz se mi tez nedari, nejake napady od Access expertu jak na to?
Dekuji
v první řadě jsi neprovedl normalizaci datového modelu (máš zmixované položky hlavičky a řádků dokumentu - ne že by to nutně muselo být ve dvou tabulkách, ale chybí tam propojovací pole, abys mohl relačně navázat tabulku na sebe samu)
Zbytek je IMHO jen důsledek výše zmíněného.
Touchwood, s definici tabulky moc delat nemuzu, je to vystup ze SAPu primo a musim to takto akceptovat.
v tom případě si udělej pomocný dotaz (nebo přímo poddotaz)
edit: SAP je mor. Kdyby byl dobře implementovaný, tak bys tyhle prasečinky v Accessu nedělal
edit2: jednoduše ten tvůj select uložíš jako dotaz (to předpokládám máš hotovo). Následně udělej druhý dotaz, do kterého dáš jako tabulky ten tvůj dotaz a původní tabulku, propojenou nějakým vhodným klíčem. Následně si zobrazíš všechny záznamy z dotazu (left join) a k nim minimum požadované hodnoty z té tvé původní tabulky.