Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem 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

Předmět Autor Datum
Přečetl jsem to z rychlíku :-). Jestli tomu rozumím, jedním dotazem nad jednou tabulkou chceš mít ko… nový
TNT 01.11.2012 11:50
TNT
v první řadě jsi neprovedl normalizaci datového modelu (máš zmixované položky hlavičky a řádků dokum… nový
touchwood 01.11.2012 12:39
touchwood
Touchwood, s definici tabulky moc delat nemuzu, je to vystup ze SAPu primo a musim to takto akceptov… nový
Novice22 01.11.2012 17:14
Novice22
v tom případě si udělej pomocný dotaz (nebo přímo poddotaz) edit: SAP je mor. Kdyby byl dobře imple… poslední
touchwood 01.11.2012 17:16
touchwood

Přečetl jsem to z rychlíku :-). Jestli tomu rozumím, jedním dotazem nad jednou tabulkou chceš mít konkrétní výstup a to má své omezení právě "ve filtru". Šel bych cestou přidat další-druhé tabulky (je to stále ta stejná tabulka jen v sql jinak pojmenovaná) a bude tam join (spojení), pro tu druhou definuješ konkrétní výstup třeba to tvoje "datum vytvoreni minimalni" a left joinem zajistíš spojení hlavní tabulky a té druhé tabulky.

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.

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.

Zpět do poradny Odpovědět na původní otázku Nahoru