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


Skriva om case when

Postades av 2011-02-24 14:09:05 - Bullen Berglund, i forum databaser, Tråden har 6 Kommentarer och lästs av 6873 personer

Hej
Jag har kört fast i en fråga. Jag har en fråga som ser ut som följer.
Hur ska jag göra för att skriva om den om jag har flera kontor? Då kan man väl inte använda case when?
Låt säga att jag har kontor1, kontor2 och kontor3 som ska summeras och grupperas för senaste veckan.
Så här har jag gjort för att hantera två kontor

declare @weekmax int
select @weekmax = max(week) from WeeklySalesUser where [year] = year(getdate())

select sum(monday) as monday,sum(tuesday) as tuesday,sum(wednesday) as wednesday,sum(thursday) as thursday,sum(friday) as friday, sum(monday)+sum(tuesday)+sum(wednesday)+sum(thursd ay)+sum(friday) as total, @weekmax as week,
case when officeID in (1) then 'Kontor 1' else 'Kontor 2' end as kontor
from WSU as w join users as u on u.userid = w.userid
where week = @weekmax
and [year] = year(getdate())
group by case when officeID in (1) then 'Kontor 1' else 'Kontor 2' end
@weekmax,
order by case when officeID in (1) then 'Kontor 1' else 'Kontor 2' end desc




Hoppas någon kan hjälpa mig när jag kört fast


Svara

Sv: Skriva om case when

Postades av 2011-02-24 14:48:30 - Tomas Granlund

Är det nåt sånt här du är ute efter?

CASE 
	WHEN officeID in (1) THEN 'Kontor 1'
	WHEN officeID in (42) THEN 'Kontor 13'
	WHEN officeID in (16, 15) THEN 'Nåt annat'
	ELSE 'Defaultkontoret!'
END


ref
msdn.microsoft.com/en-us/library/ms181765.aspx

Om jag var du skulle jag nog kika på möjligheten att inte göra översättningen av officeID = 1 -> 'Kontor 1' i SQL:en utan istället sköta det i den anropande koden nånstans. Tycker jag känns mer naturligt i vart fall :)


Svara

Sv:Skriva om case when

Postades av 2011-02-24 16:52:17 - Bullen Berglund

Nej inte riktigt. Jag känner mig lite låst vid case eftersom antalet kontor vilket egentligen är säljgrupper varierar, det bildas ny och andra försvinner).

Jag skulle vilja ha en fråga som är oberoden av hur många kontor det finns eller vad dom heter.
Det är en bra idé att lägga ut kontorsid och kontorsnamn i en egen tabell och hämta dom där.


Svara

Sv: Skriva om case when

Postades av 2011-02-24 19:36:16 - Håkan Borneland

Var finns kontorsnamnet idag?
I WSU eller users?


Svara

Sv:Skriva om case when

Postades av 2011-02-24 19:59:56 - Bullen Berglund

Ingetdera faktiskt. Det verkar hanteras i stored procedurn eller i koden på hemsidan.
Så den borde lagras. I princip så är ID även namnet. Ettan, tvåan trean osv.
Vilket fungerar när man snackar om det men är mindre tydligt när man skrivet ut det.


Svara

Sv: Skriva om case when

Postades av 2011-02-25 11:23:43 - Håkan Borneland

Hmmm ja du...

Nedanstående borde fungera enligt ditt koncept att bara lägga till texten "Kontor" på kontorsid.
Oavsett hur många kontor du har, eller lägger till/tar bort.

Men vill du ha mer kontroll över kontorsnamnen får du skapa en tabell där du lägger till dom.

Principiellt så är det en bra idé att alltid skriva ut aliaset framför kolumn/fält när man använder dom på tabeller. (alltså i ditt fall w och u)
Nu vet inte jag i vilken tabell kolumnerna/fälten hör hemma, så jag kunde inte skriva ut det,
överlåter det åt dig. :-)

OBS! Kan ha smygit sig in stav/syntaxfel.

<code>
DECLARE @weekmax int;
SELECT @weekmax = MAX(week) FROM WeeklySalesUser WHERE [year] = year(GETDATE());

SELECT
SUM(monday) AS monday,
SUM(tuesday) AS tuesday,
SUM(wednesday) AS wednesday,
SUM(thursday) AS thursday,
SUM(friday) AS friday,
SUM(monday) + SUM(tuesday) + SUM(wednesday) + SUM(thursday) + SUM(friday) AS total,
@weekmax AS week,
('Kontor ' + officeID) AS kontor
FROM WSU AS w
JOIN users AS u ON u.userid = w.userid
WHERE week = @weekmax AND [year] = year(getdate())
GROUP BY ('Kontor ' + officeID)
ORDER BY kontor DESC;
</code>


Svara

Sv:Skriva om case when

Postades av 2011-02-25 20:34:47 - Bullen Berglund

Justerade lite och funkar fin fint.
Stort tack
/Bullen


Svara

Nyligen

  • 18:42 Hvor finder man håndlavede lamper
  • 18:41 Hvor finder man håndlavede lamper
  • 16:36 Allt du behöver veta om keramiskt
  • 16:14 Vem anlitar man egentligen när tak
  • 16:14 Vem anlitar man egentligen när tak
  • 16:13 Vem anlitar man egentligen när tak
  • 11:52 Noen erfaring med uttak hos Mostbe
  • 11:51 Noen erfaring med uttak hos Mostbe

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 556
27 958
271 741
350
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