ďťż
 
T-SQL: (dont) Know how ďťż
 
T-SQL: (dont) Know how
Zobacz wiadomości
 
Cytat
A gdyby tak się wedrzeć na umysłów górę, / Gdyby stanąć na ludzkich myśli piramidzie, / I przebić czołem przesądów chmurę, / I być najwyższą myślą wcieloną. . . Juliusz Słowacki, Kordian
Indeks BCB i MySQL subiekt gt fototapeta
 
  Witamy

T-SQL: (dont) Know how



Kordian - 21-07-2006 01:19
T-SQL: (dont) Know how
  witam,

Mam bazę danych, w której składowane są dane wraz z datą w formacie '2006-06-06
06:06'. Potrzebuję napisac zapytanie, które grupowałoby dla zadanego okresu
czasu (np tydzień, miesiąc) dane tak, by pokazywały:
między 00:00 a 08:00 były takie wartości
między 08:00 a 16:00 były takie
między 16:00 a 00:00 były takie

i tak dla każdego dnia z przedziału czasu. Mnie wychodzi, że trzeba użyć
kursorów i 3 zaytań oddzielnych, ale jestem amatorem ;-))

Pozdr.
Kordian

--
Wysłano z serwisu OnetNiusy: http://niusy.onet.pl





Jacek Stawicki - 21-07-2006 01:19

 
Użytkownik "Kordian" <kordian28WYTNIJTO@poczta.onet.pl> napisał w wiadomości
news:7c66.000000e7.44bf84f0@newsgate.onet.pl...
> witam,
>
> Mam bazę danych, w której składowane są dane wraz z datą w formacie
> '2006-06-06
> 06:06'. Potrzebuję napisac zapytanie, które grupowałoby dla zadanego
> okresu
> czasu (np tydzień, miesiąc) dane tak, by pokazywały:
> między 00:00 a 08:00 były takie wartości
> między 08:00 a 16:00 były takie
> między 16:00 a 00:00 były takie
>
> i tak dla każdego dnia z przedziału czasu. Mnie wychodzi, że trzeba użyć
> kursorów i 3 zaytań oddzielnych, ale jestem amatorem ;-))

select
count(*),
convert(varchar(10), OrderDate, 102),
sum(case when datepart(hour, OrderDate) between 00 and 08 then 1 else 0
end) '00:00-08:00',
sum(case when datepart(hour, OrderDate) between 08 and 16 then 1 else 0
end) '08:00-16:00',
sum(case when datepart(hour, OrderDate) between 16 and 24 then 1 else 0
end) '16:00-24:00'
from
Sales.SalesOrderHeader
group by
convert(varchar(10), OrderDate, 102)
order by 2




Kordian - 21-07-2006 01:19

  >
> Użytkownik "Kordian" <kordian28WYTNIJTO@poczta.onet.pl> napisał w wiadomości
> news:7c66.000000e7.44bf84f0@newsgate.onet.pl...
> > witam,
> >
> > Mam bazę danych, w której składowane są dane wraz z datą w formacie
> > '2006-06-06
> > 06:06'. Potrzebuję napisac zapytanie, które grupowałoby dla zadanego
> > okresu
> > czasu (np tydzień, miesiąc) dane tak, by pokazywały:
> > między 00:00 a 08:00 były takie wartości
> > między 08:00 a 16:00 były takie
> > między 16:00 a 00:00 były takie
> >
> > i tak dla każdego dnia z przedziału czasu. Mnie wychodzi, że trzeba użyć
> > kursorów i 3 zaytań oddzielnych, ale jestem amatorem ;-))
>
> select
> count(*),
> convert(varchar(10), OrderDate, 102),
> sum(case when datepart(hour, OrderDate) between 00 and 08 then 1 else 0
> end) '00:00-08:00',
> sum(case when datepart(hour, OrderDate) between 08 and 16 then 1 else 0
> end) '08:00-16:00',
> sum(case when datepart(hour, OrderDate) between 16 and 24 then 1 else 0
> end) '16:00-24:00'
> from
> Sales.SalesOrderHeader
> group by
> convert(varchar(10), OrderDate, 102)
> order by 2

Stary...MEGASZACUNEK!!! Ja to napisałem za pomocą procedury, która szła 1000x
wolniej!!! Dzięki i pozdrawiam.

Kordian

--
Wysłano z serwisu OnetNiusy: http://niusy.onet.pl
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • effulla.pev.pl
  • comp
    jak to =?ISO-8859-2?Q?zrobi=E6=2E=2E=2E=3F_TSQL_sql_server?==?ISO-8859-2?Q?_?= Jak =?windows-1250?Q?pobra=E6_szacowan=B9_wielko=9C=E6_zbiory_wy nikowego_w_MS?==?windows-1250?Q?_SQL_2005=3F?= =?iso-8859-2?Q?=5BMS_SQL=5D_Czy_mo=BFna_wywo=B3a=E6_funkcje_t ylko_raz_dla?==?iso-8859-2?Q?_ca=B3ego_zbioru_=BCr=F3d=B3owego=3F?= [MSSQL] =?ISO-8859-2?Q?zgodno=B6ci_z_licencjami_Microsoft_?==?ISO-8859-2?Q?SQL_Server?= =?ISO-8859-2?Q?k=B3opot_z_uruchomieniem_MY_SQL_dla_C?==?ISO-8859-2?Q?MS_i_CRM_na_Fedora_Core_3?= Oracle PL/SQL Wstawianie =?ISO-8859-2?Q?wynik=F3w_kolekcji_d?==?ISO-8859-2?Q?o_tabeli?= [MSSQL] ACCESS - SQL =?ISO-8859-2?Q?B=B3ad_w_konwersji_lic?==?ISO-8859-2?Q?zb?= =?iso-8859-2?Q?=5Bmssql=5D_Zapytania_rekurencyjne__-_czy_sk=B3adnia_sql?==?iso-8859-2?Q?_co=B6_takiego_przewiduje_=3F?= [Oracle PL/SQL] Cursor i zapis =?ISO-8859-2?Q?rekord=F3w_do_?==?ISO-8859-2?Q?kolejnych_plik=F3w?= =?iso-8859-2?Q?=5BMySQL=5D_Co_minimalnie_potrzebne_zeby_mie=E 6_klienta_My?==?iso-8859-2?Q?SQL_na_Linuxie=3F?=
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • felgiuzywane.xlx.pl
  • Cytat

    Decede mihi sole - nie zasłaniaj mi słonca.
    Gdy kogoś kochasz, jesteś jak stworzyciel świata - na cokolwiek spojrzysz, nabiera to kształtu, wypełnia się barwą, światłem. Powietrze przytula się do ciebie, choćby był mróz, a ty masz w sobie tyle radości, że musisz ją rozdawać wokoło, bo się w tobie nie mieści
    Hoc fac - tak czyń.
    A tergo - od tyłu; z tyłu.
    I czarne włosy posiwieją. Safona

    Valid HTML 4.01 Transitional

    Free website template provided by freeweblooks.com