Tabela sum przepływu dziennego. Microsoft® SQL Server® 2008 Management Studio.

0

Mam tabelę [Runtime].[dbo].[History] gdzie zapisywany jest aktualny przepływ co kilka sekund dla kilkudziesięciu punktów pomiarowych. Przepływ ten jest w jednostce m^3/min. Chce zrobić tabelę z sumami dziennymi przepływu.

To zapytanie wyświetla nam poprawny z ostatnich 24h:

SELECT AVG(Value)*24*60
  FROM [Runtime].[dbo].[History]
  where TagName = 'Przeplyw_C.PV'
  and DateTime < GETDATE()
  and DateTime > DATEADD(DAY,-1,GETDATE())
  and QualityDetail = 192

Chciałbym zrobić tabelę tak aby uaktualniała się codziennie o godzinie 00:00. Dodatkowo na początek potrzebuje jeszcze w ten sam sposób przerobić dane z ostatniego roku.

0
  1. chcesz sumę czy średnią?
  2. gdzie jest problem bo ja pytania nie widzę
0

Muszę obliczyć sumy przepływu dziennego z kilku ostatnich lat dla bazy danych zawierającej miliony rekordów i zapisać je do nowej tabeli i nie wiem jak to zrobić.

0

dokładnie tak samo jak masz wyżej tylko zamiast filtrować po dacie musisz po niej pogrupować (ważne, że musisz pogrupować tylko po dacie bez czasu) i tą samą datę musisz też dodać do listy wyświetlanych kolumn. A jak je zapisać do nowej tabeli to google wie najlepiej mssql create table from select

0

Dzięki, jutro przećwiczę w pracy i dam znać co wyszło.

0

Trochę się pozmieniało, muszę robić sumy godzinowe. Zrobiłem coś takiego:

SELECT CONVERT(VARCHAR(13),DateTime,20) as DateTime,TagName,AVG(Value)*60 as Value
  INTO [xyDane].[dbo].[PrzeplywyGodzinoweTMP]
  FROM [Runtime].[dbo].[History]
  where 
  TagName = 'p1'or
  TagName = 'p2' or
  .
  .
  .
  TagName = 'p53' or
  TagName = 'p54'
  and DateTime < '2014-01-02 00:00:00.000'
  and DateTime >= '2014-01-01 00:00:00.000'
  and QualityDetail = 192
  GROUP BY  CONVERT(VARCHAR(13),DateTime,20), TagName

Przelicza to ok 4 min. Tabela stworzona, dane poprawne, a teraz 2 pytania:

  1. Jak takiej tabeli zrobić update o kolejny dzień?
  2. Jak zrobić żeby taki update robił się automatycznie o danej godzinie?
0

nie prościej jest napisać triggera on insert (bo rozumiem, że dane są tam tylko dodawane) na tabeli History, który będzie automatycznie aktualizował tabelę PrzeplywyGodzinoweTMP

1 użytkowników online, w tym zalogowanych: 0, gości: 1