Hirdetés
- GoodSpeed: Te hány éves vagy?
- sziku69: Fűzzük össze a szavakat :)
- Luck Dragon: Asszociációs játék. :)
- f(x)=exp(x): A laposföld elmebaj: Vissza a jövőbe!
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- gban: Ingyen kellene, de tegnapra
- sziku69: Szólánc.
- Magga: PLEX: multimédia az egész lakásban
- eBay-es kütyük kis pénzért
- Luck Dragon: Alza kuponok – aktuális kedvezmények, tippek és tapasztalatok (külön igényre)
Ú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
- Robotporszívók
- NVIDIA GeForce RTX 5080 / 5090 (GB203 / 202)
- OLED monitor topic
- exHWSW - Értünk mindenhez IS
- PlayStation 5
- A nagy Szóda, Szódakészítés topic - legyen egy kis fröccs is! :-)
- Hardcore café
- Alkoholista nevelde
- NVIDIA GeForce RTX 5070 / 5070 Ti (GB205 / 203)
- Big in Japan - japán játékokról, kötetlenül
- További aktív témák...
- G15 5530 15.6" FHD IPS i7-13650HX RTX 4060 16GB 512GB NVMe új akku gar
- Eladó Jamo SW 410E
- Telefon tokok, telefon fóliák kedvezményes áron!
- Dell latitude 5330 i5-12.gen/8gb ddr4/250gb ssd/magyar Bill./új akku (Esztétikai hibás)
- Erőmű Magyar! Lenovo P16 ( Core I9 12950HX 32Gb DDR4 512Gb SSD Nvidia RTX 4Gb video) laptop!
- GYÖNYÖRŰ iPhone 12 Pro Max 128GB Pacific Blue -1 ÉV GARANCIA - Kártyafüggetlen, MS3940, 100% Akksi
- magyar billentyűzet - 136 - Lenovo Legion Pro 7 (16IRX9H) - i9-14900HX, RTX 4080 - 4 ÉV GARANCIA!
- Lian Li LCD-s 360mm-es vízhűtés akciós áron eladó!
- Samsung Galaxy A53 5G / 6/128GB / Kártyafüggetlen / 12 Hó Garancia
- Lenovo Thinkpad P1 Gen 6 - i9-13980HX, 32GB, 2TB SSD, 16" WQUXGA (3840 2400), RTX 4090
Állásajánlatok
Cég: Laptopszaki Kft.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest



