我想聚合查詢來計算兩個日期之間的記錄,我希望在別名列名稱的結果作爲startDay - 結束日即假設我想要記錄數在2015年1月1日和2015年1月5日之間,那麼我希望結果在列頭像「1 - 5」一樣。如何將變量名稱分配給SQL查詢別名列名?
回答
好的,這裏沒有說明這裏是我最好的嘗試,試圖找出你在找什麼。如果我完全離開,我表示歉意。
基本上,如果您正在查找自定義列名稱並且還希望有多個列的日期範圍。例如:如果您希望一列在1月1日到1月6日之間有值,那麼在1月7日到1月13日之間有另一列的日期...等等。然後你需要看看類似於我列在下面的子查詢。
您可以編寫子查詢來僅選擇要查找的範圍數據,然後將其重新添加到要從中提取的主表中。
注意:如果你使用這種方法,你會得到很多空值在你的查詢中彈出,所以你可能需要將它們過濾掉,因爲你認爲合適,但是這種變化很大,你怎麼做聯接到子查詢。
SELECT
ID
X.Jan1toJan6 AS [custom column name]
FROM
TABLE1
INNER JOIN
(SELECT DISTINCT
ID,
[UpdateDate] as Jan1toJan6
FROM [table1]
WHERE [UpdateDate] BETWEEN '2008-01-01' AND '2008-01-06') as X
ON X.ID = Table1.ID
謝謝,其實我需要的結果是這樣的: –
每週第一天\t第一 - 最後一天周\t報名人數 05-OCT-15 \t 10月5日至一十日 12 - 15 \t 10月12日至17日\t 50 –
警告:我不認爲這是一個好主意。你應該使用一個通用的列名,它會爲你節省很多麻煩,特別是因爲用戶不太可能真正理解這樣的列名意味着什麼。如果用戶想要輕鬆查看報告的運行日期,最好將開始日期和結束日期作爲單獨的列返回。然而,這是一個不完美的世界,有時我們會遇到迫使我們進入不完美解決方案的要求。 (但是,推回這一個,至少儘量不要這樣做,因爲這是一個可怕的想法。)
在這種情況下我得到的想法,你想根據發送的日期作爲查詢的參數,如果日期是從1日到5日,如果日期是20日到25日,則需要1到5日,則需要20-25作爲列名。要做到這一點,你需要動態SQl,這是一個寫作的痛苦,甚至更糟糕的測試。它也可能是一個安全噩夢。如果你一定和決心做這種愚蠢的事情,那麼這就是它會大概怎麼做:
declare @startdate date= '2015/01/01'
, @enddate date='2015/01/05'
, @test varchar (10)
set @test = cast(day(@startdate) as varchar (2)) +'-' + cast(day(@enddate) as varchar (2))
declare @Sql varchar(max)
set @sql = 'select top 10 id, field1 - field2 as '
+''''[email protected]+'''' + ' from table1
where date_entered >' +cast(@startdate as varchar(10))+
' and date_entered <= ' + cast(@enddate as varchar(10))
EXECUTE sp_executesql @SQL
其實你應該設置參數值的執行sp_executesql的語句,但我騙了,因爲你只路過在日期中很難用於SQL注入攻擊。在任何情況下,不考慮這樣做,直到您已閱讀並完全理解以下鏈接:
動態SQL可能是非常危險的,應該避免尤其是當它是唯一的化妝品是正在要求使用它。不應該輕易使用它,也不要理解你正在做的事情的全部含義。
- 1. 如何將點擊的類別名稱分配給變量?
- 2. 如何將表名分配給變量?
- 3. 給列表變量名稱
- 4. 如何將模塊名稱分配給變量?
- 5. 如何將變量分配給對象名稱?
- 6. 如何將索引分配給FOR LOOP中的變量名稱?
- 7. 我如何將圖像名稱分配給字符串變量
- 8. 如何將Excel VBA變量分配給定義的名稱
- 9. 如何將變量分配給實例名稱?
- 10. MATLAB分配變量名稱
- 11. 將未知變量分配給新變量名稱
- 12. 將變量分配給另一個變量名稱
- 13. 查詢變量表名稱
- 14. 如何將增量名稱分配給列表中的元素?
- 15. 如何將變量中的模式名稱傳遞給nHibernate的命名查詢?
- 16. SQL Server變量列名稱?
- 17. 按列名稱分組的SQL變量
- 18. 如何將Dataframe列標題名稱分配給列變量與迭代
- 19. 如何將單個查詢的排名分配給多個列?
- 20. 如何使用SQL Server將具有別名的case語句分配給變量
- 21. Oracle SQL:如何查找給定列名稱的表名?
- 22. 將變量名賦值給變量名
- 23. 在QuerySet中分配表別名名稱
- 24. 將變量值分配爲表列名
- 25. 分配給名稱變量或變量的值
- 26. 根據名稱自動將POST JSON分配給變量
- 27. 將數據幀名稱分配給函數中的變量
- 28. 將變量名稱自動分配給mongodb文檔字段
- 29. MySql CLI - 查詢的別名/名稱
- 30. 如何將表名稱傳遞給VBA中的sql查詢
歡迎使用計算器。爲了得到更好的答案,考慮添加一些你想要實現的例子,以及你試過的問題。 –
你正在使用哪些DBMS? Postgres的?甲骨文? –