Avatar billede noodrem Nybegynder
28. februar 2009 - 10:01 Der er 6 kommentarer og
1 løsning

Q foran Quarter i select query

Hej

Jeg har følgende query:

SELECT    DateKey, FullDateAlternateKey, DayNumberOfWeek, EnglishDayNameOfWeek, SpanishDayNameOfWeek, FrenchDayNameOfWeek,
                      DayNumberOfMonth, DayNumberOfYear, WeekNumberOfYear, EnglishMonthName, SpanishMonthName, FrenchMonthName, MonthNumberOfYear,
                      CalendarQuarter, CalendarYear, CalendarSemester, FiscalQuarter, FiscalYear, FiscalSemester
FROM        dbo.DimDate

Her vil jeg gerne have smidt Q foran CalenderQuarter. Pt ligger calenderquarter gemt som tinyint, så skal have konverteret til en char og så smidt Q foran CalenderQuarter
Avatar billede arne_v Ekspert
28. februar 2009 - 13:31 #1
...,CONCAT('Q',CalendarQuarter),...
Avatar billede noodrem Nybegynder
28. februar 2009 - 14:26 #2
Tak for svaret :)

Det bliver dog konverteret til  { fn CONCAT('Q', Color) } AS Color når jeg executer forespørgslen, men ellers virker det fint.

Jeg bruger det til at redigere i data viewet i business intellegence studio. (replace table with new named query)

Når jeg bruger dette script:

'Q' + CAST(CalenderQuarter AS char(4)) AS CalenderQuarter

Får jeg en fejl. medd. Har du nogen ide om hvorfor det ikke virker?


Ellers smider du bare et svar ;)
Avatar billede arne_v Ekspert
28. februar 2009 - 15:06 #3
MySQL skal bruge CONCAT ikke + til den slags.

{ fn CONCAT() }

tyder på at det software du bruger er Java orienteret !

Noget ret smart Java software !!

Jeg er lidt forvirret over Color versus CalendarQuarter, men det antager jeg bare er noget eksempel halløjsa.

Men virker det er alle jo lykkelige.

Og svar.
Avatar billede noodrem Nybegynder
28. februar 2009 - 15:29 #4
Okay. Kan se jeg fejlagtigt har fået oprettet spørgsmålet i MySQL kategorien. Jeg bruger MSSQL. Skal jeg stadig holde fast ved CONCAT?
Avatar billede arne_v Ekspert
28. februar 2009 - 15:33 #5
Ah.

Nej i MS SQLServer bør + virke.

Prøv med:

('Q' + CAST(CalenderQuarter AS VARCHAR(4))) AS CalenderQuarter

og hvis ikke den virker så pot fejlmeddelelsen.
Avatar billede noodrem Nybegynder
28. februar 2009 - 16:23 #6
Ah nu virker det. Calender skulle have været CalendAr ;)

Det er vel nok med char(2) i dette tilælde. Hvis jeg havde haft eks. 'Quarter' foran quarter nummeret skulle det vel have været char(8) i stedet ikke?
Avatar billede arne_v Ekspert
28. februar 2009 - 16:39 #7
Det er vel kun tallet du caster så CHAR(1) er sikkert nok.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester