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


Jämförelse

Postades av 2009-03-25 21:34:00 - Ander Andersson, i forum sql-server/msde, Tråden har 6 Kommentarer och lästs av 1279 personer

Jag vill räkna ut (summera) antal timmar man har jobbat i månadvis i ett år.

Sedan vill jag jämföra om de antal arbetade timmar är lika med de schemalagda timmar tex under månad och därefter resten av månaderna i ett år.

Om arbetadetimmar mindre än med de schemalagdatimmar
Gör något
Select något...

Om arbetadetimmar större än med de schemalagda timmar
Gör något
Select något...


Den select frågan kan jag bara få de totala arbetadetimmar och schemalagda timmar under året 2008

select month(datum),
               sum(arbetadetimmar) as Arbetadetimmar,
	sum(schemalagda) as Schemalagda
from tblSchema
where datum like '2008%' and PersonalID=5
group by month(datum),month(arbetadetimmar)









Svara

Sv: Jämförelse

Postades av 2009-03-26 23:28:12 - Håkan Borneland

Sparar ni datumen som strängar??
Ger ett exempel (SQL Server 2005).
Har inte riktigt förstått vad du vill uppnå.
SELECT satsen efter THEN villkoret måste returnera ett unikt värde.
Vet inte om det är det du tänkt dig med dina SELECTer.
<code>
;WITH getHours AS
(
SELECT
MONTH(datum) AS Månad,
SUM(arbetadetimmar) AS Arbetadetimmar,
SUM(schemalagda) AS Schemalagda
FROM tblSchema
WHERE (datum LIKE '2008%') AND (PersonalID = 5)
GROUP BY MONTH(datum)
)

SELECT
Månad,
CASE WHEN Arbetadetimmar > Schemalagda THEN (SELECT something scalar [value])
WHEN Arbetadetimmar < Schemalagda THEN (SELECT something scalar [value])
WHEN Arbetadetimmar = Schemalagda THEN (SELECT something scalar [value])
ELSE (SELECT something entirely different scalar [value]) END
FROM getHours;
</code>


Svara

Sv:Jämförelse

Postades av 2009-03-27 09:41:47 - Ander Andersson

Hej

Jag kanske var lite otydligt. Jag sparar datum som sträng. Jag vill bara räkna ut bonus på
de anställda som har jobbat med sina arbetade timmar(alltså de schemalagda timmarna)

Bonusen som man kan få ut är 6000 kr/år
om schemalagdatimmar är 160/mån och man har jobbat alla sina timmar så får man 500 kr/månad
Men om man har jobbat mindre arbetadetimmar får man ingen bonus alls (0 kr)


Declare @Bonus float

Set @Bonus = 6000/12 (man får 500 kr/mån)


Svara

Sv: Jämförelse

Postades av 2009-03-27 11:02:02 - Håkan Borneland

OK, nu förstår jag lte mer.
Kanske det här är närmare sanningen.
Lade in att man får bonusen om man jobbat sina schemalagda timmar, eller mer.
<code>
;WITH getHours AS
(
SELECT
PersonalID AS PersonalID,
SUM(arbetadetimmar) AS Arbetadetimmar,
SUM(schemalagda) AS Schemalagda
FROM tblSchema
WHERE (datum LIKE '2008%') AND (PersonalID = 5)
GROUP BY MONTH(datum)
)

SELECT
PersonalID,
SUM(CASE WHEN Arbetadetimmar >= Schemalagda THEN 500 ELSE 0 END) AS Bonus
FROM getHours
GROUP BY PersonalID;
</code>


Svara

Sv:Jämförelse

Postades av 2009-03-27 13:30:12 - Ander Andersson

Tack för svaret

Men jag kör SQL SERVER 2000 och den klagar på (;with)
jag får felmeddelande --Incorrect syntax near ';'.



Svara

Sv: Jämförelse

Postades av 2009-03-27 13:44:33 - Håkan Borneland

Precis, som jag skrev i början så är det SQL Server 2005.
Då gör vi en subquery istället.
<code>
SELECT
a.PersonalID,
SUM(CASE WHEN a.Arbetadetimmar >= a.Schemalagda THEN 500 ELSE 0 END) AS Bonus
FROM
(SELECT
PersonalID AS PersonalID,
SUM(arbetadetimmar) AS Arbetadetimmar,
SUM(schemalagda) AS Schemalagda
FROM @tblSchema
WHERE (datum LIKE '2008%') AND (PersonalID = 5)
GROUP BY MONTH(datum), PersonalID) a
GROUP BY a.PersonalID;
</code>


Svara

Sv:Jämförelse

Postades av 2009-03-27 17:03:19 - Ander Andersson

Tack så mycket....
Det funkar mycket bra


/Anders


Svara

Nyligen

  • 19:38 Rekommendera något intressant
  • 19:13 Международная перевозка грузов
  • 00:01 DL Van Tuning | Exclusive Body Kit
  • 12:08 Indian casino
  • 04:14 Vad finns det för kratomalternativ
  • 14:16 Indian online casino
  • 14:15 Indian online casino
  • 08:28 Butiksskyltar: Hur upplever utbude

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 570 873
27 965
271 770
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