Pitäisi saada eräässä kyselyssä accessissa laskettua kahden ajan välinen aikaero tunteita, mutta luvuista pitäisi ottaa pois mahdolliset viikonloput?? onko tähän mitään tapaa? olen käyttänyt tähän asti DateDiff funktiota, mutta ei ainakaan itse löytänyt siitä tällaista ominaisuutta..
päiväyksistä vkonloput pois
11
635
Vastaukset
- eakem
...millaisesta kyselystä on kyse.
- eakem
Tässä on yksi kyselyn malli:
select * from taulu where format(pvm_kentta,'ddd') not in ('la','su');
Nuo la ja su korvaat niillä päivillä jotka haluat jättää pois. Tosta jää lauantait ja sunnuntait pois. Jos access on eri kielinen (tai saattaa olla kiinni myös käyttiksen kieliasetuksista, en muista varmaksi) niin muutat noita 'la' ja 'su' vastaavasti. - otso
eakem kirjoitti:
Tässä on yksi kyselyn malli:
select * from taulu where format(pvm_kentta,'ddd') not in ('la','su');
Nuo la ja su korvaat niillä päivillä jotka haluat jättää pois. Tosta jää lauantait ja sunnuntait pois. Jos access on eri kielinen (tai saattaa olla kiinni myös käyttiksen kieliasetuksista, en muista varmaksi) niin muutat noita 'la' ja 'su' vastaavasti.minulla on siis taulukossa kaksi kenttää, aloitus-ja lopetusaika. minun pitäisi saada laskettua näiden kahden kentän välinen aikaero tunteina sillälailla, että viikonloppuja ei oteta huomioon. esim jos aloitusaika on 6.8.2004 23.45 (joka sattuu olemaan perjantai) ja lopetusaika on 9.8.2004 9.45 (maanantai) niin näiden välinen aikaero pitäisi olla 10 tuntia eikä 58 tuntia, jonka DateDiff laskee. Onko tähän olemassa mitään tapaa? Vieläkin parempi olisi jos pystyisi ohittamaan kaikki pyhäpäivät, mutta se taitaa jo olla aivan liian vaikeeta...
- ...........
otso kirjoitti:
minulla on siis taulukossa kaksi kenttää, aloitus-ja lopetusaika. minun pitäisi saada laskettua näiden kahden kentän välinen aikaero tunteina sillälailla, että viikonloppuja ei oteta huomioon. esim jos aloitusaika on 6.8.2004 23.45 (joka sattuu olemaan perjantai) ja lopetusaika on 9.8.2004 9.45 (maanantai) niin näiden välinen aikaero pitäisi olla 10 tuntia eikä 58 tuntia, jonka DateDiff laskee. Onko tähän olemassa mitään tapaa? Vieläkin parempi olisi jos pystyisi ohittamaan kaikki pyhäpäivät, mutta se taitaa jo olla aivan liian vaikeeta...
Ellen ole aivan väärässä, niin tuota et saa tehtyä suoraan tietokannassa, vaan se pitää tehdä jollain ohjelmointikielel, ihan helppo tommonen on tehdä.
Otat eka kahden päivämäärän eron tolla DateDiffil tietokannasta (otat myös päivämäärä kenttien arvot mukaan) sit tarkastat ohjelmointikielelläsi onko siinä viikonloppuja välissä tai juhlapyhiä, jos on niin vähennät 24h*päivien lukumäärä, siis viikonlopussa 48h vähennys
Ihan mielenkiinnosta mihkä sie tota tarttet? - osto
........... kirjoitti:
Ellen ole aivan väärässä, niin tuota et saa tehtyä suoraan tietokannassa, vaan se pitää tehdä jollain ohjelmointikielel, ihan helppo tommonen on tehdä.
Otat eka kahden päivämäärän eron tolla DateDiffil tietokannasta (otat myös päivämäärä kenttien arvot mukaan) sit tarkastat ohjelmointikielelläsi onko siinä viikonloppuja välissä tai juhlapyhiä, jos on niin vähennät 24h*päivien lukumäärä, siis viikonlopussa 48h vähennys
Ihan mielenkiinnosta mihkä sie tota tarttet?tarvitsisin tätä tomintoa vaan erääseen hommaan missä pitäisi katsoa pitävätkö tietyt lähtövalmiustasot paikkansa. Siinä vain pitäisi skipata viikonloput. Tässä ohjelmointikielen käytössä on vain se ongelma, että minun tapauksessani se tieto pitäisi saada toimimaan automaattisesti kun taulukkoa taas joskus tulevaisuudessa päivitetään, joten jos teen se jotenkin muuten niin joudun aina siirtämään tiedot ensiksi omaan ohjelmaani ja takaisin ja siitä aiheutuu sitten hieman liikaa hommaa.. Mutta kiitoksia vaan avusta, yritän vielä keksiä jotain ratkaisuja ongelmaan.
- Punikki & 7 hyypiötä
osto kirjoitti:
tarvitsisin tätä tomintoa vaan erääseen hommaan missä pitäisi katsoa pitävätkö tietyt lähtövalmiustasot paikkansa. Siinä vain pitäisi skipata viikonloput. Tässä ohjelmointikielen käytössä on vain se ongelma, että minun tapauksessani se tieto pitäisi saada toimimaan automaattisesti kun taulukkoa taas joskus tulevaisuudessa päivitetään, joten jos teen se jotenkin muuten niin joudun aina siirtämään tiedot ensiksi omaan ohjelmaani ja takaisin ja siitä aiheutuu sitten hieman liikaa hommaa.. Mutta kiitoksia vaan avusta, yritän vielä keksiä jotain ratkaisuja ongelmaan.
>Tässä ohjelmointikielen käytössä on vain se ongelma, että minun tapauksessani se tieto pitäisi saada toimimaan automaattisesti kun taulukkoa taas joskus tulevaisuudessa päivitetään, joten jos teen se jotenkin muuten niin joudun aina siirtämään tiedot ensiksi omaan ohjelmaani ja takaisin ja siitä aiheutuu sitten hieman liikaa hommaa..
No tuonhan saa VBA:lla tehtyä eli tietoja ei tarvi käyttää minkään ulkoisen ohjelman kautta.
- paakki
Laita hakukyselyn Ehdoksi:
Not "la" And Not "su"
Tämä poistaa päivämääräkentästä päivät "la" ja "su".
Korvaat tietysti nuo "la" ja "su" sun omilla pvm-nimikkeilläsi.- paakki
Mulla on Access-lomakkeessa tällainen pvm-juttu, joka on toteutettu Accessin Visual Basic-koodilla.
Lomakkeessa on kolme Muokkausruutua:
Muokkaus36 on muotoa Weekday(Date()).
Muokkaus38 on pelkkä muokkausruutu ilman muotoja.
Muokkaus40 on muotoa =Time()
Koodi (Lomaketta aktivoitaessa):
- - - - - - - - - -
Private Sub Form_Activate()
Me.Refresh
If Muokkaus36 = 1 Then
Muokkaus38 = "sunnuntai " & Date
Else
If Muokkaus36 = 2 Then
Muokkaus38 = "maanantai " & Date
Else
If Muokkaus36 = 3 Then
Muokkaus38 = "tiistai " & Date
Else
If Muokkaus36 = 4 Then
Muokkaus38 = "keskiviikko " & Date
Else
If Muokkaus36 = 5 Then
Muokkaus38 = "torstai " & Date
Else
If Muokkaus36 = 6 Then
Muokkaus38 = "perjantai " & Date
Else
If Muokkaus36 = 7 Then
Muokkaus38 = "lauantai " & Date
End If
End If
End If
End If
End If
End If
End If
End Sub
- - - - - - - - - -
Koodi (Muokkaus38:aa klikatessa):
Private Sub Muokkaus38_DblClick(Cancel As Integer)
Muokkaus40 = Time()
MsgBox "Tänään on " & Muokkaus38 & " ja kello on " & Muokkaus40 & "."
Me.Refresh
End Sub
- - - - - - - - - -
Eli kun kun lomake aktivoituu (avautuu), saa tietyt muokkausruudut arvoiksi joko ajan tai viikonpäivän. Ja kun klikkaa Muokkaus38:aa, tulee sen arvoksi "Tänään on maanantai 23.8.2004 ja kello on 12:11:45."
Aika pitkä ja ehkä sekavakin juttu, mutta tuo toimii täysin. Sun kohdalla voisit tehdä kyselyn, joka poistaa siis lauantait ja sunnuntait. Tällöin joudut kyllä käyttämään muokkausruutujen asemesta taulukoissa olevia kenttiä, joille annat muodoiksi joko pvm, klo tai teksti.
- eakem
...alku- ja loppuajan välillä, ts. useita viikonloppuja? Jos ei, voisi tehdä union kyselyn, jossa aikajakson pilkkoo osiin, esim:
SELECT nimi,alkuaika,loppuaika,alkuaika as uusialkuaika, datevalue(dateadd('d',1,alkuaika))-alkuaika as hyv_aika
FROM Taulukko1
where loppuaika-alkuaika>0
UNION
SELECT nimi,alkuaika,loppuaika,datevalue(alkuaika 1) as uusialkuaika,
iif(dateadd('d',2,alkuaika)0 and format(alkuaika 1,'ddd') not in ('la','su')
UNION
SELECT nimi,alkuaika,loppuaika,datevalue(alkuaika 2) as uusialkuaika,
iif(dateadd('d',3,alkuaika)0 and format(alkuaika 2,'ddd') not in ('la','su')
UNION
SELECT nimi,alkuaika,loppuaika,datevalue(alkuaika 3) as uusialkuaika,
iif(dateadd('d',4,alkuaika)0 and format(alkuaika 3,'ddd') not in ('la','su')
UNION
SELECT nimi,alkuaika,loppuaika,alkuaika 4 as uusialkuaika,
iif(dateadd('d',5,alkuaika)0 and format(alkuaika 4,'ddd') not in ('la','su')
UNION
SELECT nimi,alkuaika,loppuaika,alkuaika 5 as uusialkuaika,
iif(dateadd('d',6,alkuaika)0 and format(alkuaika 5,'ddd') not in ('la','su')
UNION SELECT nimi,alkuaika,loppuaika,alkuaika 6 as uusialkuaika,
iif(dateadd('d',7,alkuaika)0 and format(alkuaika 6,'ddd') not in ('la','su');
Tämän toiminta edellyttää, että alku- ja loppuajan välillä on max 7 vuorokautta. Jos aikajaksot on pitkiä, ei ole (ehkä) mitään järkeä tehdä näin. Tuon voi sitten vielä summata uudessa kyselyssä, jolloin saa yhden tietueen per tapahtuma, esim:
SELECT kysely4.nimi, kysely4.alkuaika, kysely4.loppuaika, sum(kysely4.hyv_aika) AS arkipaiva_aika
FROM kysely4
GROUP BY kysely4.nimi, kysely4.alkuaika, kysely4.loppuaika;
Tulos on näissä kyselyissä päivinä, kun päivämääriä vähennetään toisistaan.
Kysely4 on tässä tapauksessa tuo eka union kysely.
Myös switch- funktiolla voisi olla käyttöä tilantessasi.
Datan luonne (lähinnä alku- ja loppuajan välisen jakson maksimipituus) ratkaisee sen, onko järkevää lähteä tekemään kyselyä, joka hanskaisi homman.- otso
kiitos vaan vastauksesta mutta tässä tapauksessa on niin, että aikajakson pituus saattaa tietyissä tilanteissa lähennellä monia kuukausia joten tuo mainitsemasi ehdotus voi olla hieman hankala
- Kunde
Sub Tunnit(Alku As Date, Loppu As Date)
Dim Tunnit As Double
Dim x As Date
x = Format(Alku, "dd/mm/yyyy")
Tunnit = DateDiff("h", Alku, Loppu)
While x 5 Then
laskuri = laskuri 1
x = x 1
Else
x = x 1
End If
Wend
Tunnit = Tunnit - laskuri * 24
MsgBox Tunnit
End Sub
Sub Koe()
Tunnit TxtAlku.Text,txtLoppu.Text
End Sub
Ketjusta on poistettu 0 sääntöjenvastaista viestiä.
Luetuimmat keskustelut
Hoitajalakko peruuntuu, tilalle joukkoirtisanoutumiset
"Tehyn ja Superin hallitukset kokoontuivat tänään toteamaan, että tilanne edellyttää järeämpiä työtaistelutoimia." https://www.hs.fi/politiikka/art-27399166Johan tuli oikea aivopieru Britti Lordilta
Emeritusprofessori Lordi Robert Skidelsky sanoi Suomen rikkovan YYA sopimusta joka on tehty Neuvostoliiton kanssaa 1948. Mitä pir3737947Tehyn Rytkösellä tallessa tekstiviestit A-studiokohussa
https://www.mtvuutiset.fi/artikkeli/a-studiosta-kohu-tehyn-rytkosen-mukaan-ministeri-linden-sai-paattaa-osallistujat-ohjelma-kiistaa-vaitteen/84070681615657William ja Sonja Aiello ERO
Hyvä Sonja! Nyt etsit uudet kaverit ja jätät nuo huume- ja rahanpesu porukat haisemaan taaksesi!542353Oho! Seurapiirikaunotar, ex-missi Sabina Särkkä yllättää tällä harvinaisella kyvyllä: "Mulla on..."
Sabina Särkkä on nähty monissa tv-reality-sarjoissa. Mutta tiesitkö, että Särkällä on valokuvamuisti? https://www.suomi24.fi/viihde/oho-seurapiirikaun62091Se siitä sitten
Kirjoitan tänne kun en sulle voi. En vaivaa sua enää koskaan. En ikinä tarkoittanut olla ahdistava tai takertuva. Tunteet heräsi enkä osannut olla tyy821740Ohhoh! Rita Niemi-Manninen otti ison tatuoinnin - Herätti somekansan: "Täydellinen paikka!"
Rita Niemi-Mannisen suuri, uusi tatuointi on saanut somekansan heräämään talvihorroksesta. Niemi-Manninen otti tatskan rakkauslomalla Aki-miehensä kan201688Ihastumisesta kertominen
Olen päättänyt kertoa tunteistani ihastukseni kohteelle. Erityisen vaikeaksi tilanteeni tekee se, että kyseessä on ns. kielletty rakkaus. Olen jo toi921427Taas Venäjän tiedoittaja akka Varoitti Suomea ja Ruotsia liittymästä Natoon
Juuri sopivasti julkaistu varoitus, kun Suomen eduskunta alkaa klo 13:50 käsitellä asiaa suorassa TV 1:n lähetyksessä. ILtasanomat.4381358Harvoin julkisuudessa nähty Jari Sillanpää, 56, julkaisi uusia kuvia - Karisti Suomen pölyt jaloista
Huumekohun jälkeen matalaa profiilia pitänyt Jari "Siltsu" Sillanpää on ollut vaitonainen elämästään. Tänä keväänä miehen some on ollut hiljainen. Nyt71283