希望一切安好.我有快速的SQL服务器问题:
我想在7天的增量中显示周列.下面是我想要的输出示例.有没有办法在SQL服务器中编写?
Week Football soccer baseball
10/01 - 10/07 1 2 3
10/08 - 10/14 4 5 6
10/15 - 10/21 5 8 0
Run Code Online (Sandbox Code Playgroud)
再次感谢!乔
这是我的剧本.
CREATE TABLE #TEMP
(
DT CHAR(10),
TO_DT CHAR(10),
BALLs VARCHAR(100),
PRODUCT INT,
Week INT
)
DECLARE
@DT DATETIME,
@TO_DT DATETIME,
@i INT
BEGIN
SET @_DT = '10/01/2012'
SET @TO_DT = DATEADD(DAY,7,@_DT)
set @i=1
WHILE (@DT <= '12/31/2013')
BEGIN
INSERT INTO #TEMP (DT, TO_DT, BALLs, PRODUCT, week)
SELECT
CONVERT(CHAR(10),@DT,101) AS FROM_DT,
CONVERT(CHAR(10),DATEADD(DAY,-1,@TO_DT),101) AS TO_DT,
BALLS,
COUNT(PRODUCT) AS PRODUCT,
@I AS WEEK
FROM #TABLE
GROUP BY BALLS
SET @DT = DATEADD(DAY,7,@DT)
SET @TO_DT = DATEADD(DAY, 7,@TO_DT)
set @i = @i + 1
END
SELECT * FROM #TEMP
DROP TABLE #TEMP
END
Run Code Online (Sandbox Code Playgroud)
Ser*_*rge 10
DATEDIFF(WK,0,)应该可以解决问题.
SELECT
DATEDIFF(WK, 0, MyDate)
, COUNT(*)
FROM (VALUES
('2013-01-01')
, ('2013-01-02')
, ('2013-01-03')
, ('2013-01-04')
, ('2013-01-05')
, ('2013-01-06')
, ('2013-01-07')
) AS X(MyDate)
GROUP BY DATEDIFF(WK, 0, MyDate)
Run Code Online (Sandbox Code Playgroud)
编辑:
使用日期格式,它是这样的:
SELECT
CONVERT(VARCHAR(5), DATEADD(WK, WK, 0), 103) + ' - ' + CONVERT(VARCHAR(5), DATEADD(DD, 6, DATEADD(WK, WK, 0)), 103)
, Cnt
FROM (
SELECT
DATEDIFF(WK, 0, MyDate) AS WK
, COUNT(*) AS Cnt
FROM (VALUES
('2013-01-01')
, ('2013-01-02')
, ('2013-01-03')
, ('2013-01-04')
, ('2013-01-05')
, ('2013-01-06')
, ('2013-01-07')
) AS X(MyDate)
GROUP BY DATEDIFF(WK, 0, MyDate)
) AS X
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13151 次 |
| 最近记录: |