小编joe*_*joe的帖子

如何在PIVOT中用0输出替换(null)值

我试图在PIVOT函数中使用0(零)输出转换(null)值但没有成功.

下面是表格和我试过的语法"

SELECT
CLASS,
[AZ],
[CA],
[TX]
FROM #TEMP
PIVOT (SUM(DATA)
FOR STATE IN ([AZ], [CA], [TX])) AS PVT
ORDER BY CLASS

CLASS   AZ  CA      TX
RICE    10  4       (null)
COIN    30  3        2
VEGIE   (null) (null) 9
Run Code Online (Sandbox Code Playgroud)

我试图使用ISNULL但没有奏效.

PIVOT SUM(ISNULL(DATA,0)) AS QTY
Run Code Online (Sandbox Code Playgroud)

有人可以查看它的语法错误吗?非常感谢!

sql sql-server pivot

40
推荐指数
3
解决办法
9万
查看次数

按财政年度分组(Oracle)

在Oracle中有没有办法可以拉动风云?我用下面的脚本只拉了两个风云.Mytable日期范围从1998财年到2009财年.

 SELECT 'FY2008' as FY, 
         Site, 
         COUNT(*) 
    FROM mytable 
   WHERE date >='10-OCT-2007' 
     AND date <'10-OCT-2008' 
GROUP BY site
Run Code Online (Sandbox Code Playgroud)
 SELECT 'FY2008' as FY, 
         Site, 
         COUNT(*) 
    FROM mytable 
   WHERE date >='10-OCT-2008' 
     AND date <'10-OCT-2009' 
GROUP BY site
Run Code Online (Sandbox Code Playgroud)

拉动两个FY是可以的,但是当拉动超过10 FY时它太重复了.

oracle

6
推荐指数
1
解决办法
2938
查看次数

如何在sql sever中按周分组(7天)

希望一切安好.我有快速的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, …
Run Code Online (Sandbox Code Playgroud)

sql sql-server

6
推荐指数
1
解决办法
1万
查看次数

在Oracle中添加逗号(,)

鉴于此查询:

select distinct subject_key
from mytable
Run Code Online (Sandbox Code Playgroud)

结果:

subject_key
-----------
90896959
90895823
90690171
90669265
90671321
Run Code Online (Sandbox Code Playgroud)

如何在Oracle中编写查询(使用Aqua Data Studio后端Oracle 8i)结果:

subject_key
-----------
90896959,
90895823,
90690171,
90669265,
90671321
Run Code Online (Sandbox Code Playgroud)

谢谢大家!我是否希望改变输出而不是如下所示.我怎么写它,同一个平台.谢谢.

subject_key
90896959,  90895823, 90690171,  90669265, 90671321
Run Code Online (Sandbox Code Playgroud)

sql string oracle oracle8i

3
推荐指数
1
解决办法
6982
查看次数

如何在excel 2010中连接日期

我有一个关于在Excel 2010中连接日期列(日期时间)类型的问题.出于某种原因,在连接日期时,值显示为数字.下面是我尝试连接它的尝试.

给出Excel 2010中的两列

Date                        ID
2/22/2010 12:00:00 AM       1
6/27/2001 12:41:30 PM       2
3/11/2004  9:00:00 AM       3
Run Code Online (Sandbox Code Playgroud)

在这里,我使用CONCATENATE函数将两列连接到#temp表中,但Date中的值显示如下

INSERT INTO #temp VALUES ('40231','1')
INSERT INTO #temp VALUES ('37069.5288194444','2')
INSERT INTO #temp VALUES ('38057.375','3')
Run Code Online (Sandbox Code Playgroud)

在Excel 2010中是否有一种方法可以用来连接我想要的内容,如上面的列Date?

非常感谢,乔

excel

3
推荐指数
1
解决办法
2万
查看次数

计算日期范围

我正在尝试计算在2009年6月1日之前90天和2009年6月1日之后90天销售的商品,下面的查询.它显示了一些错误.请有人亲切地为我做点什么吗???

SELECT
location,                       
SUM((CASE WHEN t.order_date DATEADD (DAY, -90, '6/1/2009') THEN t.Item ELSE NULL END) as Prior_Items,
SUM(CASE WHEN t.order_date DATEADD (DAY, 89,  '6/1/2009') THEN t.Item ELSE NULL END) as Post_Items
ELSE NULL
END)
FROM mytable t
where date = '6/1/2009'
group by location
Run Code Online (Sandbox Code Playgroud)

sql

-3
推荐指数
1
解决办法
157
查看次数

标签 统计

sql ×4

oracle ×2

sql-server ×2

excel ×1

oracle8i ×1

pivot ×1

string ×1