- Huawei Watch GT 6 és GT 6 Pro duplateszt
- iPhone topik
- Samsung Galaxy A56 - megbízható középszerűség
- MWC 2026: Hálózattechnológiai mélyvíz Bóday Tamással. Mint rendesen.
- Xiaomi 17 - még mindig tart
- Xiaomi 17 Ultra - jó az optikája
- Milyen okostelefont vegyek?
- Google Pixel topik
- Maradt 46 mm a Xiaomi Watch S5, de nőtt a kijelző
- Itt a Galaxy S26 széria: az Ultra fejlődött, a másik kettő alig
Ú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
- exHWSW - Értünk mindenhez IS
- BestBuy topik
- No Rest for the Wicked
- Huawei Watch GT 6 és GT 6 Pro duplateszt
- Kínai és egyéb olcsó órák topikja
- Arc Raiders
- Forza sorozat (Horizon/Motorsport)
- Xbox tulajok OFF topicja
- Multimédiás / PC-s hangfalszettek (2.0, 2.1, 5.1)
- Chuch Norris teret váltott!
- További aktív témák...
- GAMER PC // ASUS TUF B650M-PLUS / R9 7900X / 64GB DDR5 / SAPPHIRE Radeon RX 7800 XT / 1TB M.2 SSD
- Intel Core i7-13700KF + ASUS Prime Z790-P WIFI + Kingston FURY Beast 32GB DDR5 6000MHz
- OH! Dell Latitude 7340 Üzleti Profi Fémházas Ultrabook Laptop 13,3" -65% i7-1365U 16/512 FHD IRIS Xe
- Azta Dell Latitude 7440 -65% Üzleti Profi Fémházas Érintős Ultrabook Laptop 14" i7-1365U 32/512 FHD+
- DJI Osmo Action 4 Adventure Combo + sok tartozékkal búvárkodáshoz
- Samsung Galaxy A23 5G 128GB, Kártyafüggetlen, 1 Év Garanciával
- Apple iPhone 16e 128 GB White 100% Akkumulátor 12 hónap Garancia Beszámítás Házhozszállítás
- White GAMER PC! Ryzen 7800X3D / RTX 4080 / 32GB DDR5 / 1TB NVMe / 1000w Gold / BeszámítOK !
- NVME, M2 NGFF, 2,5" SATA SSD-k vegyes OEM márkák és prémium típusok, sok újszerű. 128GB-1TB
- ÁRGARANCIA!Épített KomPhone Ryzen 7 7800X3D 32/64GB RAM RTX 5070Ti 16GB GAMER PC termékbeszámítással
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest



