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

C++, C#, Visual Basic, Delphi, Perl a ostatní

Moderátor: Moderátoři Živě.cz

Odeslat příspěvekod kajeracek 8. 6. 2017 14:03

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
Přílohy
Ukázka.jpg
Ukázka tabulky
kajeracek
Kolemjdoucí

Odeslat příspěvekod radim33 11. 7. 2017 20:17

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é)"?
radim33
Junior

Odeslat příspěvekod kajeracek 13. 7. 2017 08:29

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
kajeracek
Kolemjdoucí

Odeslat příspěvekod Stoura 1 13. 7. 2017 14:21

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ů)
Stoura 1
Junior
Uživatelský avatar


Kdo je online

Uživatelé procházející toto fórum: Žádní registrovaní uživatelé a 0 návštevníků