Hirdetés
Új hozzászólás Aktív témák
-
válasz
mr.nagy
#3702
üzenetére
A megoldás.
- ki kell pattintani az adatok egy kulturáltabb formába
- meghatározni, hogy az igény kevesebb vagy több, mint a rendelkezésre álló mennyiség
- amennyiben kevesebb a rendelkezésre álló mennyiség, akkor arányosan mindenki kevesebbet kap (csak egész értéket)
- a maradékokat szétosztjuk úgy, hogy a legkisebb igénytől a legnagyobbig emelkedő sorrendben kapnak kompenzációtNézd el nekem, hogy a kiosztandó mennyiséget ennyi_van néven konstansként tettem bele, de kicsit már késő van

create table NormalTeszt
(
igeny_id integer,
igeny_elem char(3),
mennyiseg integer
);INSERT INTO NormalTeszt
([igeny_id], [igeny_elem], [mennyiseg])
VALUES ('1', 'P01', '3'), ('1', 'P02', '5'), ('1', 'P03', '7'), ('1', 'P04', '6'), ('1', 'P05', '8'), ('1', 'P06', '9'),
('1', 'P07', '4'), ('1', 'P08', '5'), ('1', 'P09', '3'), ('1', 'P10', '4')
;select
igeny_id,
ennyi_van,
igeny,
igeny_elem,
sorszam,
mennyiseg,
case when
ennyi_van - igeny < 0
and ennyi_van - uj_total > 0
and sorszam <= (ennyi_van - uj_total) then uj_mennyiseg + 1
else uj_mennyiseg
end as kiosztott
from (
select
igeny_id,
ennyi_van,
igeny,
igeny_elem,
mennyiseg,
sorszam,
case when ennyi_van / igeny < 1
then cast(mennyiseg * (ennyi_van / igeny ) as integer)
else mennyiseg end as uj_mennyiseg,
sum(case when ennyi_van / igeny < 1
then cast(mennyiseg * (ennyi_van / igeny ) as integer)
else mennyiseg end)
over(partition by igeny_id) as uj_total
from (
SELECT
t.igeny_id,
cast(40 as decimal (5,2)) as ennyi_van,
t.igeny_elem,
t.mennyiseg,
row_number() over(partition by t.igeny_id order by mennyiseg asc) as sorszam,
cast(sum(t.mennyiseg) over(partition by t.igeny_id) as decimal(5,2)) as igeny
FROM NormalTeszt as t) as t1
) t2
order by sorszam
Új hozzászólás Aktív témák
- World of Tanks - MMO
- Dr. Mózes: Lakberendezési tanácskérés
- Milyen TV-t vegyek?
- Milyen Android TV boxot vegyek?
- Philips LCD és LED TV-k
- Audi, Cupra, Seat, Skoda, Volkswagen topik
- Konkrét moderációval kapcsolatos kérdések
- Iqos cigaretta
- Alaposan helyretette az AI ellenzőit az NVIDIA vezetője
- Kamionok, fuvarozás, logisztika topik
- További aktív témák...
- Eladó Konfig I5 7400 16GB DDR4 240GB SSD 512GB HDD GTX1660TI 6GB!
- ÚJ Glorious PC Gaming Race Model WIred O illetve I Bolti ár:14k INGYEN FOXPOST
- ÚJ Glorious PC Gaming Race Model I 2 Wireless Bolti ár:40k INGYEN FOXPOST
- ÚJ Glorious PC Gaming Race Model D/D- USB Bolti ár:10k INGYEN FOXPOST
- ÚJ Glorious Model O 2 Wireless Bolti ár:40k INGYEN FOXPOST
- Huawei P30 Lite / 4/128GB / Kártyafüggetlen / 12Hó Garancia
- Dell Precision 7560 Workstation i7-11850H 32GB RAM 1TB SSD Nvidia RTX A3000 6GB 1 év garancia
- Samsung Galaxy S21 Ultra 5G 12/128GB Fekete / 12 hó jótállás
- Apple iPhone SE 2020 128 GB Fehér 1 év Garancia Beszámítás Házhozszállítás
- Készpénzes / Utalásos Számítógép felvásárlás! Személyesen vagy Postával!
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
Cég: Laptopszaki Kft.
Város: Budapest



