SQL lekérdezés megvalósítása?
Adott 1 szállítólevél táblám.
sofőr_szám(int), jármű_szám(int), kiállítási_dátum(date), teljesítési_dátum(date)
1 lekérdezésben hogyan lehetne megvalósítani, hogy 1 hónapban hány órát dolgozott a sofőr.
tehát visszakapott adat: Sofőr, Melyik hónap, Hány órát
Próbálkoztam between meg egyéb módszerrel de nem értem el át törést.
Köszönöm ha tud valaki segíteni nekem ebben. Reggel 8 ig kellene :)
Ha valaki nem ír lekérdezést nekem de találkozott hasonló feladattal irány elvet is meghallgatok :)
ebből a pár adatból hogyan?
mi az hogy kiállítási dátum, mi az hogy teljesítési dátum.
nulla infot adtál eddig.
select DATEDIFF(day,sza.kiállítási_dátum,sza.teljesítési_dátum) as Diff
from szállítólevél sza
irányba kezdtem el mozogni :)
Szerintem a date_add kell neked
date add interval
intervallum lesz a szállítólevél kiállítási ideje és a kiszállítási időpont közötti idő, majd ezeket meg összeadod az azonos sofőrszámoknál.
A feladat természetesen megoldható, csak néhány információt el kéne árulnod.
Pl.
A két dátum közötti idő a sofőr munkaideje? Ez percre pontosan van megadva?
Ha mind a két kérdésre igen a válasz, akkor miért a day-t használod? Ha nem, akkor hogyan akarunk órára pontos eredményt kapni belőle?
Ha percekben jön ki az idő, akkor mi a munkaóra definíciója? Alkalmanként kerekíteni kell esetleg, vagy csak a végösszeget? Vagy töredékórában jön ki?
Milyen SQL nyelvjárást használsz?
Néhány mellékes apróság, amik fontosabbak, mint a jajgatás az ékezetes mezőneveken...
Ha a rendszered engedi használni az ékezeteket, akkor nem lesz baj belőle, de olyan megfontolásból mégsem túl célszerű választás, hogy csökkenti a hordozhatóságot, és az ember később mindig meglepődik, hogy mi mindent nem gondolt előre. Másik gép, másik rendszer, másik SQL, másik cég...
Még egy kérdés. Van-e közvetlen hozzáférésed az adatbázishoz? Én például egy Postgres adatbázist programozok, és ilyen problémákat általában függvényekkel oldok meg, amik szépítik az életet és gyorsítják a lekérdezéseket. Ugyanúgy be lehet építeni a felhasználói függvényeket, mint egy Excel-táblázatba, csak jogosultság kérdése.
Függvény nélkül a megoldás bonyolultabb és lassabb lesz (mármint futásidőben).
Ez az egész 1 sulis feladat része. Többen dolgozunk 1 egyszerű adatbázison benne triggerekkel egyebekkel.
Tehát még úgymond tanuló szinten vagyok a dolgokkal de alap funkciókat egyebeket megtudok írni.
Két dátum között nem tudom miért dateadd nak adtuk meg viszont. Naggyából megtaláltam amit kell. amiben el akadtam, az a csoportosítás.
Lehetőleg úgy akartam, hogy hónapokra/emberekre szűkítse,
ki mennyit dolgozott 1 adott hónapban. datediff nél sehogy se tudtam adott értékeket összeadni, meghaladta SUM() képességeimet. :/
SELECT sza.sofőr_szám, DATEADD(MONTH, DATEDIFF(MONTH, 0, sza.teljesítési_dátum), 0) as Hónap
, DATEDIFF(HOUR,sza.kiállítási_dátum,sza.teljesítési_dátum) as munkaidő
FROM szállítólevél sza
kérdés. DATEDIFF adott részeit mivel tudnám össze adogatni? :)
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!