Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Hjälp med att räkna max antal aktiva poster inom en tidsperiod

Postades av 2008-05-07 12:59:57 - Patrik Näslund, i forum sql-server/msde, Tråden har 6 Kommentarer och lästs av 1550 personer

Jag har en användartabell där administratören kan lägga till nya samt inaktivera användare och jag har fått i uppdrag att plocka fram max antal aktiva användare per månad. Dvs om man skapar en ny användare innan man inaktiverar en annan ska det räknas som 2, men om man avslutar den gamla innan så räknas det bara som en.

Skulle med andra ord vilja hitta toppen på kurvan över antal användare inom en viss period.

Är det någon som vet om det finns något smart sätt att åstadkomma det i SQL (Jag kör MsSQL 2005 Express)?

/Patrik


Svara

Sv: Hjälp med att räkna max antal aktiva poster inom en tidsperiod

Postades av 2008-05-07 13:10:20 - Niklas Jansson

Hur sker själva inaktiveringen, etc.?
Via ändringar i tabellen, typ Active = False eller liknande?

Det i mitt tycke snyggaste är att sköta det helt och hållet via databasen; ha med en "tid inlagd" och en "tid inaktiverad", och sen göra en beräkning.

Annars kan jag i princip bara se ett sätt, och det är att via en trigger eller manuellt i koden uppdatera en annan tabell för att hålla reda på det.


Svara

Sv: Hjälp med att räkna max antal aktiva poster inom en tidsperiod

Postades av 2008-05-07 13:10:23 - Johan Djupmarker

Vilken information har du om användarena? Är det tidsstämplar för när kontot aktiverats och inaktiverats?

/Johan


Svara

Sv:Hjälp med att räkna max antal aktiva poster inom en tidsperiod

Postades av 2008-05-07 13:18:46 - Niklas Jansson

Men snälla Johan, liiite snabbare får du väl vara?!

;-)


Svara

Sv:Hjälp med att räkna max antal aktiva poster inom en tidsperiod

Postades av 2008-05-07 13:21:41 - Patrik Näslund

Ja, jag har gjort ungefär som du beskriver, har SkapadDatum och InaktiveradDatum samt en flagga Aktiv på användaren.

Jag har identifierat tre olika fall när man söker på en period
1. Aktiva användare skapade före periodens start (ska alltid räknas med)
2. Aktiva användare skapade inom perioden (ska också alltid räknas med)
3. Inaktiva användare som inaktiverats inom perioden (ska bara räknas med om deras InaktiveradDatum är efter skapadDatum för användarna i 2.

Och när man summerar ovanstående borde man kunna hitta en tidpunkt när det var flest aktiva användare och det är den siffran jag vill få fram.

Jag har en lösning på gång med temptabeller och tre olika SQL-frågor enligt ovan, men undrar om det kan finnas någon enklare och snyggare lösning som jag förbisett?


Svara

Sv: Hjälp med att räkna max antal aktiva poster inom en tidsperiod

Postades av 2008-05-07 13:48:23 - Niklas Jansson

Jag skulle snarare säga att vi har följande fall:
1. Användare inte ändrats under perioden (inte registrerat sig i eller inaktiverats under perioden).
2. Användare registrerats under perioden
3. Användare inaktiverats inom perioden.
4. Både 2 och 3.

Nu borde det gå att göra något i stil med:
SELECT DT, M FROM ((SELECT registered_on as DT, 1 AS M FROM T WHERE registered_on >= 2008-01-01 AND registered_on < 2008-01-02)
UNION ALL
(SELECT inactivated_on as DT, -1 AS M FROM T WHERE inactivated_on >= 2008-01-01 AND inactivated_on < 2008-01-02)) ORDER BY DT, M

Så ser vi hur det förändras.
Typ
2008-01-01 +1
2008-01-01 +1
2008-01-02 -1
2008-01-02 +1
...

Problemet som kvarstår nu är att ackumulera värdet. Kan inte se något direkt sätt att göra det; kanske genom att hämta ut alla DT och göra någon slags join (låter jävligt slött dock). Där borde det dock vara en ganska smal sak att lösa det programmeringsmässigt.


Svara

Sv:Hjälp med att räkna max antal aktiva poster inom en tidsperiod

Postades av 2008-05-07 19:21:10 - Patrik Näslund

Ja, då är jag nog inne på rätt spår ändå...
Hade hoppats på ett svar av typen "Ja men då kan man använda SQL-funktionen bla bla..." :-)
Men då får jag jobba vidare på den lösning jag påbörjat.
Tack för hjälpen!

/Patrik


Svara

Nyligen

  • 14:24 CBD regelbundet?
  • 14:23 CBD regelbundet?
  • 14:22 Har du märkt några verkliga fördel
  • 09:09 Vill du köpa medicinska tester?
  • 12:47 Vem beviljar assistansen – kommune
  • 14:17 Någon med erfarenhet av hemstädnin
  • 14:14 Bör man använda sig av en båtförme
  • 14:12 Finns det någon intressant hundblo

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 569 615
27 953
271 709
5 534
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies