我有一個group by YEAR(mydate),MONTH(mydate)
SQL服務器:組由功能上的某個字段選擇
我想選擇它們作爲一個獨特的領域像
SELECT SUM(Price),YEAR(mydate) + '/' + MONTH(mydate)
FROM MyTable
GROUP BY YEAR(mydate), MONTH(mydate)
或這樣的事情。
mydate
是smalldatetime
。
可能嗎?
我有一個group by YEAR(mydate),MONTH(mydate)
SQL服務器:組由功能上的某個字段選擇
我想選擇它們作爲一個獨特的領域像
SELECT SUM(Price),YEAR(mydate) + '/' + MONTH(mydate)
FROM MyTable
GROUP BY YEAR(mydate), MONTH(mydate)
或這樣的事情。
mydate
是smalldatetime
。
可能嗎?
試試這個:
SELECT cast(YEAR(mydate) as CHAR(4))+'/'+cast(MONTH(mydate) as varchar(2))
FROM MyTable
Group by YEAR(mydate),MONTH(mydate)
你需要將它們轉換爲字符串
嘗試
SELECT convert(varchar(7), mydate ,111)
FROM MyTable
GROUP BY convert(varchar(7), mydate ,111)
我有錯誤,因爲mydate沒有在分組列表中提到 – 2012-08-03 09:34:43
啊。應該檢查一下。編輯.. – podiluska 2012-08-03 09:36:05
SELECT CAST(DATENAME(YY,指明MyDate)爲char(4))+' - '+ CAST(DATENAME(mm,mydate)AS VARCHAR(2))'Date' ,SUM(Price) FROM [My Table] GROUP BY DATENAME(yy,mydate) ,DATENAM E(WW,指明MyDate)
請提供答案的解釋。 – Jeet 2016-07-04 06:34:07
和**格式化**也是如此...... – 2017-04-06 11:43:08
對於MS SQL Server 2012中,有前導零:
CAST(YEAR(mydate) AS VARCHAR(4)) + '/' +
RIGHT('00' + CAST(MONTH(mydate) AS VARCHAR(2)), 2)
或者您可以在SQL Server 2012中使用'FORMAT()'函數... – 2017-04-06 11:43:31
非常感謝您的評論! – 2017-04-06 11:55:12
這裏我的解決方案:) 我需要一個SQLServer表中長大日期(列year_rif和month_rif)至從一個鏈接的Oracle表中插入新記錄(由月度職位鏡像在SQLSERVER Oracle表)
DECLARE @anno_INIZIO int
DECLARE @mese_INIZIO int
select top(1) @mese_INIZIO= mese_rif,@anno_INIZIO=anno_rif
from dbo.ORACLE_BUDGET_MENSILI
group by mese_rif,anno_rif
order by max(mese_rif/12+anno_rif) desc
set @anno_inizio=coalesce(@anno_INIZIO ,2016)
set @mese_INIZIO=coalesce(@mese_INIZIO,1)
起初我進口開始承擔從2016年1月 完整的工作是獲取數據:
DECLARE @anno_INIZIO int
DECLARE @mese_INIZIO int
--get max year/mont avaible in mirrored table
select top(1) @mese_INIZIO= mese_rif,@anno_INIZIO=anno_rif from dbo.ORACLE_BUDGET_MENSILI group by mese_rif,anno_rif order by max(mese_rif/12+anno_rif) desc
--
set @anno_inizio=coalesce(@anno_inizio,2016)
set @mese_INIZIO=coalesce(@mese_INIZIO,1)
-- query to linked oracle to get into table newer data
SET @SQL='select * FROM OPENQUERY(ADL_REP,''
SELECT CODICE_UO,ANNO_RIF,MESE_RIF,ID_CLASSE,BUDGET,ORE_MENSILI_OBIETTIVO FROM ADL.BUDGET_MENSILI where mese_rif/12+anno_rif > '+convert(varchar(255),@mese_INIZIO/[email protected]_INIZIO)+'
'')'
INSERT INTO uat.[dbo].ORACLE_BUDGET_MENSILI EXECUTE sp_executesql @SQL
我不明白你要做什麼 - 這個查詢是否工作?或者,如果沒有,它以什麼方式不能按照你想要的方式工作? – 2012-08-03 09:21:35
我想知道每年/每月的總和(價格) – 2012-08-03 09:30:17
好的 - 但是不是那個查詢已經回答了這個問題嗎? – 2012-08-03 09:30:48