- AMD Ryzen 9 / 7 / 5 / 3 5***(X) "Zen 3" (AM4)
- Multimédiás / PC-s hangfalszettek (2.0, 2.1, 5.1)
- NAVON Stark NX14
- Nyomtató topik
- Milyen billentyűzetet vegyek?
- Egérpad topik
- Nem fut az Intel grafikus vezérlőin az év egyik legjobban várt címe
- Hobby elektronika
- Nvidia GPU-k jövője - amit tudni vélünk
- NVIDIA GeForce RTX 5070 / 5070 Ti (GB205 / 203)
Új hozzászólás Aktív témák
-
Apollo17hu
őstag
válasz
mr.nagy
#3698
üzenetére
Szia!
Írtam a példádhoz egy favágó kódot. Legalábbis ha sql-ben kellene megoldani, akkor én úgy állnék neki, hogy meghatároznám a total igényt, az igénylők darabszámát, és ebből számolnék tovább.
Akkor nincs gond, ha az igény többszöröse a kiosztható értéknek, mert akkor egyszerűen a kiosztható értéket az igénylők számával kell leosztani, és minden igénylő ennyit fog kapni. (Ezt már nem kódoltam bele, de értelemszerűen 20 db CASE WHEN-ről lesz szó...)
Eddig írtam meg a kódot. Még megképeztem egy olyan mezőt, ami azt tartalmazza, hogy mennyi olyan kiosztható érték marad, amiből már csak 1-1 darabot lehet véletlenszerűen (vagy extra logikával?) odaadni az igénylőknek.
select case when alap.kioszthato >= alap.total then 'N' else 'I' end hiany_fl
,case when alap.kioszthato >= alap.total then null
when isnull(alap.darab, 0) = 0 then null
else floor(alap.kioszthato / alap.darab) end ennyire_kell_csokkenteni
,case when alap.kioszthato >= alap.total then 0
when isnull(alap.darab, 0) = 0 then null
else alap.kioszthato - floor(alap.kioszthato / alap.darab) * alap.darab end ennyi_szetosztando_marad
,alap.*
from
(SELECT P1+P2+P3+P4+P5+P6+P7+P8+P9+P10+P11+P12+P13+P14+P15+P16+P17+P18+P19+P20 as total
,case when P1= 0 then 0 else 1 end + case when P2= 0 then 0 else 1 end + case when P3= 0 then 0 else 1 end + case when P4= 0 then 0 else 1 end + case when P5= 0 then 0 else 1 end + case when P6= 0 then 0 else 1 end + case when P7= 0 then 0 else 1 end + case when P8= 0 then 0 else 1 end + case when P9= 0 then 0 else 1 end + case when P10= 0 then 0 else 1 end + case when P11= 0 then 0 else 1 end + case when P12= 0 then 0 else 1 end + case when P13= 0 then 0 else 1 end + case when P14= 0 then 0 else 1 end + case when P15= 0 then 0 else 1 end + case when P16= 0 then 0 else 1 end + case when P17= 0 then 0 else 1 end + case when P18= 0 then 0 else 1 end + case when P19= 0 then 0 else 1 end + case when P20= 0 then 0 else 1 end as darab
,t.*
FROM Teszts t) alap
Új hozzászólás Aktív témák
- exHWSW - Értünk mindenhez IS
- AMD Ryzen 9 / 7 / 5 / 3 5***(X) "Zen 3" (AM4)
- Multimédiás / PC-s hangfalszettek (2.0, 2.1, 5.1)
- NAVON Stark NX14
- Kínai és egyéb olcsó órák topikja
- Nyomtató topik
- Viccrovat
- Milyen billentyűzetet vegyek?
- Samsung Galaxy A56 - megbízható középszerűség
- A tajvani chipgyártóknak is beteszi a kaput a Hormuzi-szoros lezárása
- 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
- BESZÁMÍTÁS! MSI B460M i5 10400F 16GB DDR4 512GB SSD RTX 2060 6GB Zalman S2 TG FSP 600W
- Bomba ár! Lenovo ThinkBook 15 G2 - i5-11G I 16GB I 256SSD I 15,6" FHD I Cam I W11 I Garancia!
- Honor Magic 7 Lite 512GB,Újszerű,Adatkabel,12 hónap garanciával
- Apple iPhone 16 Pro 128GB, Kártyafüggetlen, 1 Év Garanciával
- 27% PNY GeForce RTX 5070 EPIC-X RGB OC 12GB GDDR7 192bit (VCG507012TFXXPB1-O) Videokártya
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest


