Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Jak zrobić taką kwerendę - access

bezdura 01 Wrz 2011 23:31 3364 9
  • #1 01 Wrz 2011 23:31
    bezdura
    Poziom 12  

    Mam takie zagadnienie

    Pole gdzie znajdują się daty powiedzmy od 01-08-2011 06:23 do 31-08-2011 05:13 oraz drugie pole status gdzie mamy 1 lub 0

    I teraz jakie dać kryterium aby wyświetlić sumę z pola status ale w przedziale dat od 06:00 -18:00 oraz 18:00-06:00 ?

    czyli np;
    -----------------06:00 -18:00 18:00-06:00
    01-08-2011----------5--------------2-----
    02-08-2011----------3--------------9-----

    itp.

    0 9
  • #2 02 Wrz 2011 12:30
    roofy_1
    Poziom 16  

    Musisz w jakiś sposób odznaczyć czy dane wystąpienie w statusie występuje w danym okresie czasu. I następnie całość zgrupować do danego dnia sumując dane wystąpienie w odrębnych kolumnach.
    Szczerze mówiąc w accessie nie wiem jak to zrobić tak na szybko :) natomiast zapytanie sql tak na szybko to coś takiego :)

    Code:


    select
    data,
    sum(licznik_08_16),
    sum(licznik_16_08)
    from
    (
    SELECT
    data,
    status,
    case when data>=...od 08:00 and <= 16:00 and status =1 then 1 else 0 end [licznik_08_16],
    case when data>=...od 16:00 and <= 08:00 and status =1 then 1 else 0 end [licznik_16_08]

    from tabelka

    )

    group by
    data

    0
  • #3 05 Wrz 2011 22:25
    bezdura
    Poziom 12  

    W zasadzie to chodzi mi o to aby zliczać ilość lini dla przedziału od 06:00-18:00 oraz 18:00-06:00. Kurcze nie wiem jak to zrobić.

    0
  • #4 06 Wrz 2011 10:41
    adamas_nt
    Moderator Programowanie

    A nie prościej utworzyć kwerendę sumującą z odpowiednimi kryteriami (between-and) w siatce QBE? Link

    0
  • #5 07 Wrz 2011 19:32
    bezdura
    Poziom 12  

    No tak właśnie chce zrobić tylko za diabła nie wiem jak je zrobić. Chodzi o ten zakres.

    0
  • #6 07 Wrz 2011 19:38
    adamas_nt
    Moderator Programowanie

    Załącz jakąś przykładową tabelę, koniecznie z układem, właściwościami i nazwami pól jak w oryginale + ew kwerendę z którą masz kłopot. Zapisz plik w formacie Ac2003 lub <

    0
  • #7 07 Wrz 2011 19:57
    bezdura
    Poziom 12  

    Załączyłem baze.Jest tylko jedna kolumna i jedna tabela a w niej jedno pole. I chce zliczać ile jest rekordów dla kryteriów od 6:00-18:00 oraz 18:00-06:00 dla jednego dnia.

    Bo to jest tak, że 1 dzień dzieli się na dwie zmiany. I ja muszę wiedzieć ile mają rekordów do wykonania na swojej zmianie.
    ----------------------------------I zmiana-------II zmiana
    Czyli dzień np 2011-09-10----50-------------45

    0
  • #8 07 Wrz 2011 21:52
    adamas_nt
    Moderator Programowanie

    Z braku A2k7 musiałem użyć Excela jako pośrednika. a2k3 zaimportował 2558 rekordów.
    Wyniki dla kryteriów 10-09-2011 18:00 do 11-09-2011 06:00 (II zmiana)

    Jak zrobić taką kwerendę - access

    Jak zrobić taką kwerendę - access

    0
  • #9 07 Wrz 2011 22:36
    bezdura
    Poziom 12  

    ok, tylko daty są ustawione na sztywno.

    A jak zrobić aby np w przedziale tydzień do przodu pogrupować po dniu wynik z każdego dnia.

    Dodano po 7 [minuty]:

    Zrobiłem to wreszcie.Dzięki za pomoc


    Jak zrobić taką kwerendę - access

    Dodano po 14 [minuty]:

    hm, chyba sie za wcześnie ucieszyłem, bo w przypadku II zmiany, jak zrobić przejscie przez północ aby to działało jak to wcześniej.

    0
  • #10 08 Wrz 2011 11:09
    adamas_nt
    Moderator Programowanie

    Date-1() 18:00:00 And Date() 06:00:00
    Wczorajsza druga zmiana (do dzisiaj 6:00).

    0