Hirdetés
- Samsung Galaxy S23 és S23+ - ami belül van, az számít igazán
- Samsung Galaxy A54 - türelemjáték
- Mobilhasználat külföldön
- Realme GT 2 Pro - papírforma
- Yettel topik
- CMF Phone 1 - egy jó telefon
- Apple iPhone 13 mini - miért nem veszik elegen?
- Samsung Galaxy Watch (Tizen és Wear OS) ingyenes számlapok, kupon kódok
- Visszatérnek a Samsung tervezte CPU-magok és GPU az Exynos 2800-ban?
- Samsung Galaxy Watch6 Classic - tekerd!
Ú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
- G.SKILL Trident Z RGB 64GB (2x32GB) DDR5 6000MHz CL30 - XMP - 99 hó garancia
- Corsair VENGEANCE 32GB (2x16GB) DDR5 6000MHz CL36 - XMP/EXPO - 120 hó garancia
- Patriot Viper Venom 32GB (2x16GB) DDR5 6000MHz CL30 - XMP/EXPO - 120 hó garancia
- Patriot Viper Venom 32GB (2x16GB) DDR5 6400MHz CL32 - XMP - 120 hó garancia
- Crucial Pro 64GB (2x32GB) DDR5 6400MHz CL40 - XMP/EXPO - 120 hó garancia
- Xiaomi Redmi Note 14 Pro+ / 8/256GB / Kártyafüggetlen
- Panasonic CF-20 ütésálló, ipari notebook & tablet számlával, garanciával
- Apple iPhone 12 128GB,Újszerű,Adatkabel,12 hónap garanciával
- BESZÁMÍTÁS! MSI B460M 10400F 16GB DDR4 512GB SSD RX 6600XT 8GB Rampage SHIVA Cooler Master 650W
- Samsung Galaxy S23 Ultra 512GB,Használt,Adatkabel,12 hónap garanciával
Állásajánlatok
Cég: Laptopszaki Kft.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest




