Hirdetés
- Luck Dragon: Asszociációs játék. :)
- sziku69: Szólánc.
- Elektromos rásegítésű kerékpárok
- sziku69: Fűzzük össze a szavakat :)
- aquark: Zsebszámológépek
- Luck Dragon: MárkaLánc
- Doky586: SecureBoot kulcsok frissítése (2026 nyara)
- Sub-ZeRo: Euro Truck Simulator 2 & American Truck Simulator 1 (esetleg 2 majd, ha lesz) :)
- balojazz: Szódakészítés üzembiztosan és olcsón! Figyelem, csak hardcore szódázóknak!
- Luck Dragon: Alza kuponok – aktuális kedvezmények, tippek és tapasztalatok (külön igényre)
Ú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
- Autós topik
- Yettel topik
- Okos otthon - Home Assistant, openHAB és más nyílt rendszerek
- Tavaszi hardvernyitány
- Nvidia GPU-k jövője - amit tudni vélünk
- Béta iOS-t használók topikja
- Jó a retró: Chieftec UNI számítógépház
- A fociról könnyedén, egy baráti társaságban
- BestBuy topik
- Luck Dragon: Asszociációs játék. :)
- További aktív témák...
- KÉK! -20%!!! MACBOOK NEO!!!! - MAGYAR BILLES! - KÉK!
- Samsung Galaxy S23 FE 8/256GB fekete
- Asztali PC , R7 5700 , RTX 3080 , 16GB DDR4 , 512GB NVME , 2TB HDD
- Asztali PC , R5 3600 , RX 6600 , 16GB DDR4 , 512GB NVME
- Eladó Dell Latitude 7490 i5-8350U 16GB ram - 512GB SSD, érintős, HU bill., ujjlenyomat olv., Windows
- ÁRGARANCIA!Épített KomPhone Ryzen 7 7800X3D 32/64GB RAM RTX 5070Ti 16GB GAMER PC termékbeszámítással
- LG UltraGear 27GP850-B IPS Monitor! 2560x1440 / 165Hz / 1ms / G-Sync / FreeSync
- 27% Számlával! ASUS ROG Loki 1000W 80 PLUS Platinum Tápegység!
- 237 - Lenovo Legion Pro 5 (16ARX8) - AMD Ryzen 7 7745HX, RTX 4070
- BESZÁMÍTÁS! Intel Core i5 8500 6 mag 6 szál processzor garanciával hibátlan működéssel
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest

