Hirdetés
- Kormányok / autós szimulátorok topikja
- Gaming notebook topik
- AMD Ryzen 9 / 7 / 5 9***(X) "Zen 5" (AM5)
- NVIDIA GeForce RTX 5080 / 5090 (GB203 / 202)
- HiFi műszaki szemmel - sztereó hangrendszerek
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- 3D nyomtatás
- AMD vs. INTEL vs. NVIDIA
- Milyen billentyűzetet vegyek?
- Milyen CPU léghűtést vegyek?
Ú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
- Sorozatok
- Mibe tegyem a megtakarításaimat?
- Kormányok / autós szimulátorok topikja
- Gaming notebook topik
- World of Tanks - MMO
- A nagy Szóda, Szódakészítés topic - legyen egy kis fröccs is! :-)
- AMD Ryzen 9 / 7 / 5 9***(X) "Zen 5" (AM5)
- CES 2026: Érintőceruzát támogató komolyabb Motorola várható
- Hitelkártyák használata, hitelkártya visszatérítés
- Mikrotik routerek
- További aktív témák...
- Újszerű Dell Latitude 5420 - i5 1145 G7 ,16-32GB RAM, SSD, jó akku, számla, 6 hó gar
- Retro Lenovo ThinkPad laptop csomag (T400, T61, X61s) - 3 db egyben
- 15.gen! Intel Core Ultra 5 245KF +16-32GB DDR5 RAM +hűtött VRM-es B860 lap! GAR/SZÁMLA (Te nevedre)!
- -70% FULLOS Lenovo ThinkPad T14: Ryzen 7 4750U 8mag, 32GB, 512GB, 14" FHD, vil.HU bill,IR,ujj.olv
- Ryzen 7 7700X +hűtött VRM-es B650M lap +16-32GB DDR5 RAM! GAR/SZÁMLA (a Te nevedre kiállítva)!
- www.stylebolt.hu - Apple eszközök és tartozékok!
- GYÖNYÖRŰ iPhone 12 Pro Max 256GB Graphite -1 ÉV GARANCIA - Kártyafüggetlen, MS2927, 100% Akkumulátor
- ÁRGARANCIA!Épített KomPhone Ryzen 7 7800X3D 32/64GB RAM RTX 5090 32GB GAMER PC termékbeszámítással
- Varmilo /Limitált kiadás/Beijing Opera/EN/Silent Red/
- Logitech G920 Kormány szett 6 hónap Garancia Beszámítás Házhozszállítás
Állásajánlatok
Cég: Laptopszaki Kft.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest



