14. februar 2018 - 13:22Der er
9 kommentarer og 1 løsning
Hente SUM ud for enkelte dage i en uge.
Har en MS database hvor der tælles antal besøgende på en .asp side. Ny record for hver dag. hit_count = tæller op for antal besøgende last_date = dags dato 14-02-2018, ny record for hver dag
Her henter jeg SUM ud for nuværende uge: ugecounternuuge = conncounter.execute("select SUM(hit_count) AS totale FROM hit_count_day_month_year WHERE DatePart('ww',last_date,'2') = DatePart('ww',Now(),'2')")
Her henter jeg SUM ud for sidste uge: ugecounterenugetilbage = conncounter.execute("select SUM(hit_count) AS totale FROM hit_count_day_month_year WHERE DatePart('ww',last_date,'2') = DatePart('ww',DateAdd('ww',-1,Now()),'2')")
Nu kommer mit spørgsmål: Hvis jeg i nuværende uge er fx torsdag, så får jeg SUM for mandag, tirs, ons og torsdag. Variabel ugecounterenugetilbage indeholder SUM for hele sidste uge og de to tal sammenlignet er ikke helt rigtigt da jeg kune skulle have SUM for mandag, tirs, ons og torsdag fra sidste uge også.
Er der nogen der kan hjælpe men en SQL streng lidt ala den ugecounterenugetilbage hvor den så kun tager SUM af de dage der er gået i den uge vi er i?
Select SUM(hit_count) as totale from ( select *,DATEPART(ww,last_date) as WeekNo,DATEPART(weekday,last_date) as WeekDays,DATEPART(ww,dateadd(ww,-1,GETDATE())) as PrevWeek from @myt )x where WeekNo = PrevWeek and WeekDays in (select DATEPART(weekday,last_date) as WeekDays from @myt where DATEPART(ww,last_date) = DATEPART(ww,getdate()) )
Tag dog lige højde for at weekday starter på en søndag, så hvis du vil have det til at starte en mandag, skal der lige tages højde for dette. Men denne SQL selecter din sum fra de antal dage du er i den nuværende uge fra sidste uge.
Min uge starter mandag, og ugecounternuuge tager kun summen for den nuværende uge vi er i.
Tak for streng, jeg prøver.
DET VIRKER !!! Mange tak for hjælpen. Her er resultatet: testaa = conncounter.execute("Select SUM(hit_count) as totale from (select *,DATEPART('ww',last_date,'2') as WeekNo,DATEPART('w',last_date,'2') as WeekDays,DATEPART('ww',dateadd('ww',-1,Now())) as PrevWeek from hit_count_day_month_year)x where WeekNo = PrevWeek and WeekDays in (select DATEPART('w',last_date,'2') as WeekDays from hit_count_day_month_year where DATEPART('ww',last_date,'2') = DATEPART('ww',Now(),'2'))")
X'et er dit alias for din ydre select. Select x.kolonner from ( select * from tablea) x Så dit X henføre til de kolonner du vælger fra din indre select.
Det er også det man i SQL termer kalder SUBselects. Og det er simpelthen for renhedensskyld jeg gør det. Man kunne også skrive en CTE som fungere på samme måde som et view basically.
with sidsteugenuværendedage as (
select *,DATEPART(ww,last_date) as WeekNo,DATEPART(weekday,last_date) as WeekDays,DATEPART(ww,dateadd(ww,-1,GETDATE())) as PrevWeek from @myt )
Select SUM(hit_count) as totale from sidsteugenuværendedage where WeekNo = PrevWeek and WeekDays in (select DATEPART(weekday,last_date) as WeekDays from @myt where DATEPART(ww,last_date) = DATEPART(ww,getdate()) )
Og der skulle selvfølgelig stå with sidsteugenuværendedage as (
select *,DATEPART(ww,last_date) as WeekNo,DATEPART(weekday,last_date) as WeekDays,DATEPART(ww,dateadd(ww,-1,GETDATE())) as PrevWeek from @myt )
Select SUM(hit_count) as totale from sidsteugenuværendedage where WeekNo = PrevWeek and WeekDays in (select DATEPART(weekday,last_date) as WeekDays from sidsteugenuværendedage where DATEPART(ww,last_date) = DATEPART(ww,getdate()))
Lige en kommentar til. Du kan vælge at kalde dig alias hvad som helst. Der kunne have stået x eller p eller et navn. Det er blot et alias for at du kan referer til dine kolonner.
CTE fungere lidt på samme måde. Her navngiver du din CTE, hvor i du skriver noget kode, som sådan set fungere som et view så det sker hele tiden runtime at den eksekverer din kode. Herefter skriver man så sin SELECT statements op i mod sin CTE. CTE er noget mere læse venlige end subselects. Men det er en smagssag.
Test: Kæmpestort gaming-headset er perfekt til dine lange Teams-møder - men har også nogle besværligheder
Længe før vi andre blev slået hjem til hjemmekontorets endeløse webmøder har gamerne gennemskuet behovet for komfortabelt grej. Så vi tog danske EPOS top gamingheadset med på arbejde. Læs testen her.
Podcast: Hos Viking Life-Saving Equipment er it gået fra at være backend til at være noget, som kunderne spørger aktivt efter
Podcast, The Digital Edge: Viking leverer en stadig større del af deres produkt som en tjeneste. Som en del af tjenesten tager Viking ansvar for sikkerheden ved at levere, dokumentere og vedligeholde det nødvendige sikkerhedsudstyr. Hør hvordan Henrik Balslev senior digital director hos Viking har løftet den opgave.
Sådan outsourcer du effektivt – og undgår fælderne
Nogle outsourcer for at minimere omkostningsniveauet, andre for at skaffe ressourcer og spidskompetencer, der er svære at skaffe lokalt – eller af en helt tredje årsag.
Der er dog talrige forhold, der er gode at afdække, før man overhovedet begynder at lede en outsourcingudbyder. Man skal klarlægge egne projektbehov samt de spørgsmål og krav, man vil stille samt indsamle viden og erfaringer om, hvordan samarbejdet indledes, drives og styres optimalt.
Dertil skal man kende til de hyppigste faldgruber, der kan få et ellers lovende outsourcingsamarbejde til at køre i grøften.