Hirdetés
- Luck Dragon: Asszociációs játék. :)
- sziku69: Szólánc.
- sziku69: Fűzzük össze a szavakat :)
- Brogyi: CTEK akkumulátor töltő és másolatai
- V.Milán: Lapdiffúzor nyomáseloszlása: gondoltad volna?
- sh4d0w: Kalózkodás. Kalózkodás?
- GoodSpeed: Márkaváltás sok-sok év után
- Sub-ZeRo: Euro Truck Simulator 2 & American Truck Simulator 1 (esetleg 2 majd, ha lesz) :)
- GoodSpeed: Alza+ Megéri?
- eBay-es kütyük kis pénzért
Új hozzászólás Aktív témák
-
Apollo17hu
őstag
válasz
szmegma
#1347
üzenetére
Gondolkodtam, hogyan kellene továbbhaladni. Lehet, hogy túlbonyolítom, de 2 halmazt (lekérdezést) kellene alkotni. Az eddigiekhez képest módosítani kell a meglévő lekérdezésen, lejjebb írom, hogyan:
1. azon munkások, akik munkaidején belülre esik a vizsgálandó időintervallum
2. minden munkás minden munkavégzését minősíteni aszerint, hogy üti-e a vizsgált intervallumot -> ["oszlop"]Az elsőnek vhogy így kell kinéznie:
SELECT DISTINCT workers_id
FROM ...
WHERE munkaido_start < checking_start AND munkaido_end > checking_endEz csak a munkások azonosítóit adja vissza, semmi mást, és másra nincs is szükség.
A második pedig az eddig megírt lekérdezésed módosítása. Annyit kell átírnod benne, hogy a WHERE -ből kitörlöd az eddigi szűréseket, helyette pedig beírod a CASE WHEN tartalmát (és így egyúttal az ["oszlop"] segédoszlopot ki is törölheted). Tehát így:
SELECT DISTINCT workers_id
FROM ...
WHERE munkafolyamat_start < checking_tart AND munkafolyamat_end > checking_endEz csak azokat a munkásokat listázza, akik már foglaltak a vizsgált intervallumot tekintve.
Ha sikerült előállítani a fenti két lekérdezést, akkor LEFT (vagy RIGHT) JOIN-nal kösd össze őket! Az 1. halmazból "kivonva" a 2. halmazt azokat a munkásokat kapod, akik ráérnek a vizsgált időpontban.
Így:
SELECT munkaideje_megfelel.workers_id
FROM (első lekérdezés kódja) AS munkaideje_megfelel
LEFT JOIN (második lekérdezés kódja) AS munkafolyamatat_uti
ON munkaideje_megfelel.workers_id = munkafolyamatat_uti.workers_id
WHERE munkafolyamatat_uti.workers_id IS NULLA JOIN-okban nem vagyok biztos, én más szintaktikát szoktam használni, de a lényeg sztem látszik.
Ha ez kész, akkor írom, hogyan csapd a workers_id mellé a szükséges infót (de erre már te is rá tudsz jönni).
-
Apollo17hu
őstag
válasz
szmegma
#1347
üzenetére
Ha jol ertem, akkor ez mar CSAK ["oszlop"]=>"true" erteku munkast dob vissza? Magyarul aki biztos nem er ra.
Nem, ["oszlop"] értéke lehet "false" is, ami azt jelenti, hogy a munkásnak ez a munkája nem ütközne abba a munkába, amit rá akarunk sózni. Viszont a munkásnak több munkája is van, és ha csak egynél is "true" értéket kapsz, az fogja azt jelenteni, hogy a munkásnak van olyan munkája, ami üti a rásózandó melót. De át is írhatod a "true" és a "false" értékeket pl. "not feasible" és NULL -ra vagy bármire, hogy hangsúlyosabban látszódjon.
Idokozben kiderult itt egy ujabb dolog. Megpedig, hogy nem csak egyetlen idopontot kell vizsgalnia a keresnek, hanem ido intervallumot.
Ezt úgy kellene megoldani, hogy az intervallum kezdetét és végét tárolod. Tehát mondjuk checking_start és checking_end meződ van. Az ["oszlop"] meződet kell csak módosítanod (ennek is adhatnál mondjuk egy ["check_worker_time"] vagy bármilyen, beszédes nevet) úgy, hogy a checking_start -ot a workers_start_hour -hoz, a checking_end -et pedig a workers_end_hour -hoz viszonyítod.
Új hozzászólás Aktív témák
- Házi barkács, gányolás, tákolás, megdöbbentő gépek!
- Óra topik
- A fociról könnyedén, egy baráti társaságban
- Milyen okostelefont vegyek?
- Androidos fejegységek
- Samsung Galaxy A54 - türelemjáték
- Hobby rádiós topik
- Vivo X200 Pro - a kétszázát!
- Pécs és környéke adok-veszek-beszélgetek
- Autós topik
- További aktív témák...
- Apple iPhone 15 Pro 128GB, Kártyafüggetlen, 1 Év Garanciával
- ÁRGARANCIA! Épített KomPhone Ultra 7 265KF 32/64GB RAM RTX 5070 Ti 16GB GAMER PC termékbeszámítással
- Apple iPhone 14 Pro Max / Kártyafüggetlen / 256GB / 12Hó Garancia / 87% akku
- Samsung Bluetooth Mouse Slim egér
- BESZÁMÍTÁS! MSI B450M R5 5600X 32GB DDR4 1TB SSD RTX 4070 12GB Rampage SHIVA Cooler Master 750W
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest

