Hirdetés
- Gyárátalakításokkal kaszálna nagyott a memóriapánikból a Samsung
- Szendvics a csúcson: teszten a különleges ROG Swift PG27AQWP monitor
- Mi a különbség a szerver és a PC között?
- A cégvezetők látják az AI költségeit, csak azt nem hogyan lesz ebből haszon
- Utcakép banánnal: félrecsúszhat a Google Térkép fókusza
- Milyen TV-t vegyek?
- Fejhallgató erősítő és DAC topik
- A cégvezetők látják az AI költségeit, csak azt nem hogyan lesz ebből haszon
- AMD Ryzen 9 / 7 / 5 9***(X) "Zen 5" (AM5)
- Projektor topic
- Milyen notebookot vegyek?
- Gyárátalakításokkal kaszálna nagyott a memóriapánikból a Samsung
- AMD Ryzen 9 / 7 / 5 / 3 5***(X) "Zen 3" (AM4)
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- OLED monitor topic
Ú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
- Torrent meghívó kunyeráló
- Milyen TV-t vegyek?
- Fejhallgató erősítő és DAC topik
- Akciófigyelő: Ha kéne vezeték nélkül CarPlay és Android Auto...
- Elektromos autók - motorok
- Itt a Galaxy S26 széria: az Ultra fejlődött, a másik kettő alig
- Gyúrósok ide!
- Gumi és felni topik
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- A cégvezetők látják az AI költségeit, csak azt nem hogyan lesz ebből haszon
- További aktív témák...
- Beszámítás! VALVE INDEX virtuális valóság szemüveg garanciával hibátlan működéssel
- GYÖNYÖRŰ iPhone 14 128GB Midnight-1 ÉV GARANCIA - Kártyafüggetlen, MS4496
- GYÖNYÖRŰ iPhone 13 Mini 256GB Midnight -1 ÉV GARANCIA - Kártyafüggetlen, MS4647, 100% Akkumulátor
- Frissen pasztázva! Playstation 4 Pro 1 TB + kontroller 6 hó garancia, számlával!
- AKCIÓ! LENOVO ThinkPad P15 Gen 2 munkaállomás - i7 11850H 16GB DDR4 1TB SSD RTX A2000 4GB W11
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest


