- Előre vagy hátra? A SilverStone rackmount házának mindegy
- Két új Arrow Lake HX CPU érkezik a gamer notebookokhoz
- MacBook Neo vs MacBook Air – Megéri a félár?
- Ha az alaplapi hangchipnél jobbra váltanál, itt az új Sound Blaster hangkártya
- ASUS blog: 2K-tól a 4K-ig és tovább a Radeon RX 9000-es szériával
- Nvidia GPU-k jövője - amit tudni vélünk
- AMD Ryzen 9 / 7 / 5 / 3 5***(X) "Zen 3" (AM4)
- Nem követi az NVIDIA dupla pontosságra kialakított modelljét az AMD
- Milyen belső merevlemezt vegyek?
- Milyen TV-t vegyek?
- Projektor topic
- Hobby elektronika
- MacBook Neo vs MacBook Air – Megéri a félár?
- Rácuppan a Steam eszközökre a Unity
- AMD Ryzen 9 / 7 / 5 9***(X) "Zen 5" (AM5)
Új hozzászólás Aktív témák
-
Agony
aktív tag
Köszi, a gond az volt, hogy a kezdő időpontot az egyik sor tartalmazta a befejező időpontot meg ugye az azt követő.
Végül sikerült megszülni a megoldást. Feljoinoltam a feladat táblát saját magára, csak egy sor eltolással, így már megvolt a kezdő- és záró időpont a datediffhez és a sum is működött.
(select
sum(datediff(second,f.idopont,f2.idopont))
from feladat f join feladat f2 on f.igenykod=f2.igenykod and f.tetelzam+1=f2.tetelszam
where f.igenykod=igenyek.igenykod)Köszönöm szépen a választ!

-
Agony
aktív tag
Sziasztok!
SQL lekérdezés kapcsán lenne szükségem egy kis útmutatásra és bízom a szaktudásotokban, mert én elvesztettem a fonalat.

Adott egy igény lista tábla, amin belül van egy feladatok tábla, tehát valaki indít egy igényt és azon belül akár több feladat is elvégezhető különböző személyek által. A feladatok elvégzésére fordított időt kellene összesíteni feladatonként, viszont a helyzetet bonyolítja, hogy bármikor megszakíthatják a feladatvégzés, amit aztán később folytatnak. Pl. munkaidő végén felfüggesztik, reggel pedig folytatják.
Valami SUM-al kombinált DATEDIFF szerűség kellene, de mivel többször megszakíthatnak és folytathatnak egy igényt, ötletem sincs hogyan...
Például:
Igény: Vevő megrendelés
Ezen belül vannak a feladatok az alábbi formában:
Feladat kezdés
A megrendelt áru összekészítése.
Feladat befejezésFeladat kezdés
A megrendelt áru csomagolása és átadása kiszállításra.
Feladat befejezésFeladat kezdés
A megrendelt áru kiszállítása.
Feladat befejezésMinden feladat kezdés és feladat befejezés tartalmaz egy időbélyegzőt, szóval a kezdés és a befejezés között kellene mondjuk egy különbözet percben, aztán ezt az egészet összegezni az igényre. Tehát az összekészítés mondjuk 5 perc volt, a csomagolás 3 perc, a kiszállítás pedig 40 perc, így az igény 48 perc munkaidő volt. Maguk a feladatok nem számítanak, minden esetben csak a kezdés és befejezés állapot között eltelt idő és ezeknek az összege.
Előre is köszönöm a segítséget!

-
Agony
aktív tag
válasz
Apollo17hu
#2471
üzenetére
Köszönöm a válaszokat!

Megoldható, mert láttam ilyet működés közben, de sajnos nem jöttem rá, mi alapján dobja szét a nevezéseket.
Egyébként úgy van ahogy írod Apollo, minden több lóval induló lovast a beérkezett nevezés mennyiségen arányosan szétoszt.Itt látható egy példa a startlista fülre kattintva. Az a lovas aki 3 lóval megy az elejére-közepére-végére van elhelyezve, akik pedig 2 lóval mennek azok az elejére és a végére.
-
Agony
aktív tag
Sziasztok!
Szerintetek megvalósítható az alábbi elképzelés egy SQL lekérdezéssel?
Adott egy tábla ami tárolja a versenyekre a nevezéseket. Egy versenyre mondjuk beérkezik 30 nevezés, de egy versenyre ugyanaz az ember akár háromszor is jelentkezhet különböző lovakkal. Ez simán le is lehet kérdezni és megvan, hogy kik indulnak az adott versenyen/versenyszámban.
Viszont felmerült egy olyan igény, hogy szeretnék ha a nevezési listában több lóval induló személy nevezéseit a beérkezett nevezések között arányosan osztaná meg a lekérdezés, hogy legyen ideje átülni egy másik lóra.Tehát ha egy ember egy lóval indul teljesen mindegy hányadik a sorban, viszont ha egy ember 4 lóval megy, akkor úgy kellene listáznia a nevezéseket, hogy ez az ember legyen az első, a tizedik, a huszadik és a harmincadik induló a 30 nevezővel rendelkező versenyen.
A nevezésről most ezek az információk állnak rendelkezésre:
lovas varchar(100)
Lovas nevét tároljalo varchar(100)
A ló nevét tároljausername varchar(100)
A nevező felhasználót tárolja, hogy lekérdesse és módosíthassa a saját nevezéseit.egyesulet varchar(100)
A lovas egyesületének nevét tároljaedzo varchar(100)
Az edző nevét tároljaverseny varchar(100)
A verseny kódját tárolja ami a category táblával van kapcsolatban a verseny adataiért ha szükséges.versenyszam varchar(100)
A versenyszámot tárolja.nevezes datetime
A nevezés beérkezésének pontos idejét tárolja.id int(11) AUTO_INCREMENT
A beérkező nevezéseket sorszámozza.Előre is köszönöm az ötleteket!

-
Agony
aktív tag
válasz
Apollo17hu
#2423
üzenetére
Azért raktam be őket, mert amúgy rengeteg felesleges számot hoz az oszlopokhoz. Pl. dátumokat másodpercekig lebontva, összegeket meg több mint 5 tizedesjegyig.
Végül a nullával osztásra is kitaláltam egy barkács megoldást, úgyhogy benne maradt a %-os Árrés is:
case t.EGYSAR < '1' then '0'
else convert(varchar(20),cast((t.KEDV/t.EGYSAR)*100 as decimal(15,2))) end as 'Kedv %',Lényegében ugyanaz mint amit te irtál, bár a tied szakszerűbbnek tűnik.

-
Agony
aktív tag
Meg is lett, csak a szerkesztés már inaktív lett. Vannak felvíve a számlákra kuponok is cikként amiknek 0Ft az ára, így viszont a
convert(varchar(20),cast((t.KEDV/t.EGYSAR)*100 as decimal(15,2))) as 'Kedvezmény (%)'
sor nullával osztás miatt elszáll, na de %-ot majd számolgat mindenki excelben.

-
Agony
aktív tag
válasz
Apollo17hu
#2420
üzenetére
Köszi, igy, hogy áttettem azokat is LEFT-re most jön a megfelelő mennyiségű rekord. Most nullával osztás miatt száll el, de valami a BEKERÁR körül van, mert azt kivéve, tökéletes.
Kapirgálok még egy kicsit, köszi!

-
Agony
aktív tag
Sziasztok!
Most kezdtem ismerkedni az SQL lekérdezésekkel, mert a cégnél egyre többször van szükségünk olyan adatokra, amik alapesetben nem kinyerhetőek a vállalatirányítási rendszerből viszont egyéni lekérdezéssel hozzájuk lehet férni.
Csináltam egy értékesítésre vonatkozó lekérdezést, de kevesebb eredményt sort hoz, mint amennyi valójában van. 48520 rekordot kellene hoznia, de csak 46686-ot hoz.
Azt sikerült megtalálnom megtalálnom, hogy mi okozza, de már 1,5 órája guggolok afölött a 2 sor fölött és sehogy sem sikerül megvilágosodni.Ránéznétek a kódra, hogy mi az error?
A hibát ez a rész okozza, mert a k táblában az IDEGENMEGRSZAM mező nem minden esetben tartalmaz értéket, van ahol NULL. Ezért is próbálkoztam a LEFT JOIN-nal, mert a KUPONNÁL és KAMPÁNYNÁL is ez volt a helyzet és ott bevált.
LEFT JOIN BEREND g ON k.IDEGENMEGRSZAM = g.BIZONYLATSZAM
INNER JOIN (select BIZTIPUSKOD, BIZTIPUSNEV from BIZTIPUS i) i ON g.BTKOD = i.BIZTIPUSKODElőre is elnézést kérek, szakmai szemmel biztos nem egy gyönyör a kód, de csak amatőrködöm.

(SQL Server 2012 SP1)
Előre is köszönöm a segítséget!
Üdv,
Levi
Új hozzászólás Aktív témák
Hirdetés
- ÚJ akksi! GigaAKCIÓ! Lenovo ThinkPad P15 Gen 2 Intel i7-11850H 32GB 512GB Nvidia RTX A3000 1 év gar
- Felújított laptopok számlával, garanciával! Ingyen Foxpost/PostaPont!
- GYÖNYÖRŰ iPhone 15 Pro 128GB Blue Titanium -1 ÉV GARANCIA - Kártyafüggetlen, MS4680
- HIBÁTLAN iPhone 14 Pro 128GB Space Black-1 ÉV GARANCIA - Kártyafüggetlen, MS4420, 100% Akksi
- Lenovo T480S i5 8350U, 16GB RAM, 256GB SSD, jó akku, számla, 6 hó gar
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest




