Stránka 1 z 1

SQL - doplnění hodnoty na základě parametrů

Odeslat příspěvekNapsal: 8. 6. 2017 15:03
od kajeracek
Dobrý den.

Mám dotaz, se kterým si nevím moc rady. Pokusím se nějak srozumitelně popsat svůj dotaz. Z databáze pomocí SQL dotazu vyberu určitá data. Následně bych potřeboval doplnit prázdný sloupec „Dodat“ podle nějakých parametrů.
Předpokládal jsem, že vytvořím proceduru, ve které vytvořím tabulku a její strukturu. Další procedurou doplním (Pomocí selectu) již zmíněná data. Následně pak pravděpodobně další procedurou potřebuji doplnit poslední sloupec, na základě daných parametrů.
Pro představu se pokusím názorně ukázat, co vlastně potřebuji.
Mám pomocí Selectu vytvořenou db tabulku, ve které je několik řádků se stejnou položkou, u každého řádku je vyplněno množství, datum pořízení, součet požadavků této položky a v dalším sloupci zásobu skladu. Do posledního sloupce bych chtěl doplnit množství tak, aby v případě nižší zásoby skladu, než je součet požadavků, se doplnil počet v pořadí dle data od nejstaršího, do množství zásoby skladu. Poradí mi někdo, jak toho docílit ideálně SQL kodem, případně nějakou formou pomocí příkazů v Excelu? Pro upřesnění přikládám ukázku tabulky.

Děkuji za pomoc

Re: SQL - doplnění hodnoty na základě parametrů

Odeslat příspěvekNapsal: 11. 7. 2017 21:17
od radim33
Množství je "požadavek ks" ?
Datum pořízení je "Datum" ?
Součet požadavků této položky tam zatím není vytvořen? nebo je to "zásoba skladu" nebo jiný sloupec v tabulce?
Doplnit množství bude sloupec "dodat(množství přidělené)"?

Re: SQL - doplnění hodnoty na základě parametrů

Odeslat příspěvekNapsal: 13. 7. 2017 09:29
od kajeracek
Dobrý den.

Omlouvám se za nepřesné informace.
Množství = požadavek ks
Datum pořízení = Datum
Součet požadavků není v přiložené tabulce zobrazen
zásoba skladu je aktuální zásoba na skladu, z kterého se následně budou položky odesílat,
a doplnit = dodat(množství přidělené)

Děkuji

Re: SQL - doplnění hodnoty na základě parametrů

Odeslat příspěvekNapsal: 13. 7. 2017 15:21
od Stoura 1
Ještě chybí informace, jestli máte práva psát na sql serveru procedry a o jaký typ (mysql, mssql, oracle) databáze se jedná. Jazyky procedur se trochu liší a jednoduchým updatem to asi nepůjde.

Pokud to chcete řešit v excelu, tam stačí řádky seřadit vzestupně podle datumu, přidat si sloupeček se zbývajícím množstvím a pomocí funkce "min" si v každém řádku přidělit zboží nebo jeho část - podle toho, jestli v předchozím řádku zbyla dost velká zásoba. Přidělené zboží pak odečíst ve sloupečku zývajících (alespoň pokud správně chápu, že zbývající zásoba je společná pro více řádků)