Zadejte hledaný výraz...

Sestaveni SQL dotazu

endyspeed
verified
rating uzivatele
25. 5. 2010 14:17:38
Dobry den,
snazim se prijit na reseni jedne ulohy, ale bohuzel zatim zadne nenachazim. Byl bych moc vdecny za nejakou pomoc nebo myslenku. Mam dve tabulky - objednavky prijate (zbozi pro zakaznika) a vydane (zbozi, co posle dodavatel). Na nich sleduji zbozi, pocet ks a datum dodani. Dale tabulku se stavem zbozi na sklade.
Napr.
Stav na sklade - Televize; 0 ks
Objednavka vydana - Televize; 5 ks; 15.5.2010
Objednavka prijate - Televize; 7 ks; 17.5.2010
Objednavka vydana - Televize; 4 ks; 20.5.2010
Algoritmus by mel vypocitat, ze mozne datum dodani zbozi pro objednavku prijatou je 20.5.2010 (predpokladam, ze zbozi jsem schopen dodat ten den, co ho obdrzim) - 17.5.2010 zbozi nejsem schopen dodat.
Tabulky by se pripojovali pres zbozi (ID_Zbozi).
Za ucelem algoritmu (SQL dotazu) by byla struktura v jednoduche podobe:
Stav na sklade (ID;ID_Zbozi;Pocet ks)
Objednavka vydana (ID;ID_Zbozi;Pocet ks; Datum dodani;)
Objednavka prijate (ID;ID_Zbozi;Pocet ks; Datum dodani;)
SQL byl mel pro danou objednavku prijatou a jeji zbozi (Zbozi_ID) zjistit, kdy jsem schopen zbozi dorucit (zohledit predchozi objednavky vydane a prijate). Obavam se, ze jednoduche reseni neexistuje:(
25. 5. 2010 14:17:38
https://webtrh.cz/diskuse/sestaveni-sql-dotazu/#reply508654
crs
verified
rating uzivatele
(1 hodnocení)
27. 5. 2010 20:44:01
Zdravíčko,
Pokud to v prvním krůčku zjednodušíme jen na zboží pro zákazníka (předpokládáme, že je bude všechno připraveno), pak by dotaz mohl vypadat poměrně jednoduše:
SELECT MAX(Datum_dodani) FROM Objednavka_prijate WHERE ID=1234;
kde místo '1234' je číslo přijaté objednávky.
Analogicky pro objednávky vydané.
Maximum z těchto maxim je pak nejbližší datum dodání zboží pro zákazníka.
(Fakt nevím, v čem je zádrhel. A nebo: pokud tam někde je, tak ho nevidím.)
27. 5. 2010 20:44:01
https://webtrh.cz/diskuse/sestaveni-sql-dotazu/#reply508653
endyspeed
verified
rating uzivatele
28. 5. 2010 09:17:42
Problem vidim v tom, kdyz bude nekolik nevyrizenych objednavek prijatych a nekolik objednavek vydanych s ruznymi datumi a s ruznym mnozstvim. To znamena, ze budu potrebovat postupne uspokojovat objednavky prijate z objednavek vydanych az k sledovane objednavce prijate, abych zjistil ktera/e objednavky vydane ji pokryji (a nasledne mozne datum dodani zakaznikovi).
28. 5. 2010 09:17:42
https://webtrh.cz/diskuse/sestaveni-sql-dotazu/#reply508652
duben
verified
rating uzivatele
(49 hodnocení)
28. 5. 2010 10:30:48
Pro sledovani skladu je asi jedina spravna logika:
1. Mas tabulku Prijate, Objednane, Sklad, AktualniStavSkladu
2. Udelas si nakladnovaci trigger nebo funkci v app, kdykoliv zadas prijde objednavka nebo vydavas zbozi
Pak funguje logika:
Prijimam 5ks TV toho a toho dne
1. Insert do prijate, pocet KS, datum kdy
2. X krat Insert po 1 zaznamu do tabulky sklad, co 1 ks, to jeden zaznam, polozka obsahuje datum naskladneni, flag zde je zbozi rezervovane a cislo dane rezervace (objednavky) a datum planovaneho vyskladneni
3. AktualniStavSkladu, kde se meni pocitadlo KS u daneho typu zbozi na zaklade naskladneni nebo vyskladneni
adekvátně k tomu pak vyskladnění a při rezervaci updatuješ první volný záznam s datumem objednávky (nebo první vhodný pro dané datum vyskladnění, ale tam už je pak logika plánování vytíženosti skladu složitejší)
S touhle logikou jsi pak schopny kdykoliv rict pomoci jednoduchych SQL kolik mas k danemu dni KS na sklade, kolik z nich je rezervovanych, kolik je volnych, jaka je poptavka na dalsi dny a kolik pripadne musis na kdy objednat.
28. 5. 2010 10:30:48
https://webtrh.cz/diskuse/sestaveni-sql-dotazu/#reply508651
Pro odpověď se přihlašte.
Přihlásit