ORACLE版本10G
有个项目,有表table1,表结构:
CREATE TABLE TABLE1
(
TID VARCHAR2(50 BYTE),
ITEM_ID VARCHAR2(50 BYTE),
QTY NUMBER
)
统计数据时用到以下SQL语句查询:
SELECT tid,
SUM (CASE
WHEN item_id = 'A1'
THEN qty
ELSE NULL
END) qty01,
SUM (CASE
WHEN item_id = 'A2'
THEN qty
ELSE NULL
END) qty02,
SUM (CASE
WHEN item_id = 'A3'
THEN qty
ELSE NULL
END) qty03,
SUM (CASE
WHEN item_id = 'A4'
THEN qty
ELSE NULL
END) qty04,
..............
SUM (CASE
WHEN item_id = 'A50'
THEN qty
ELSE NULL
END) qty50
FROM table1
GROUP BY tid
查询结果中,有一行:
TID,QTY01,QTY02,QTY03,QTY04,QTY05,QTY06,QTY07,QTY08,QTY09,QTY10,QTY11,QTY12,QTY13,QTY14,QTY15,QTY16,QTY17,QTY18,QTY19,QTY20,QTY21,QTY22,QTY23,QTY24,QTY25,QTY26,QTY27,QTY28,QTY29,QTY30,QTY31,QTY32,QTY33,QTY34,QTY35,QTY36,QTY37,QTY38,QTY39,QTY40,QTY41,QTY42,QTY43,QTY44,QTY45,QTY46,QTY47,QTY48,QTY49,QTY50
40772990,52,,,6,,20,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
就是只有3个值。
但是表里这个tid有十几个值来着。。
把SQL改为:
SELECT tid,
SUM (CASE
WHEN item_id = 'A1'
THEN qty
ELSE NULL
END) qty01,
SUM (CASE
WHEN item_id = 'A2'
THEN qty
ELSE NULL
END) qty02,
SUM (CASE
WHEN item_id = 'A3'
THEN qty
ELSE NULL
END) qty03,
SUM (CASE
WHEN item_id = 'A4'
THEN qty
ELSE NULL
END) qty04,
..............
SUM (CASE
WHEN item_id = 'A50'
THEN qty
ELSE NULL
END) qty50
FROM table1
GROUP BY tid
ORDER BY tid
只是加了个ORDER BY tid
查询结果中该行就变成:
TID,QTY01,QTY02,QTY03,QTY04,QTY05,QTY06,QTY07,QTY08,QTY09,QTY10,QTY11,QTY12,QTY13,QTY14,QTY15,QTY16,QTY17,QTY18,QTY19,QTY20,QTY21,QTY22,QTY23,QTY24,QTY25,QTY26,QTY27,QTY28,QTY29,QTY30,QTY31,QTY32,QTY33,QTY34,QTY35,QTY36,QTY37,QTY38,QTY39,QTY40,QTY41,QTY42,QTY43,QTY44,QTY45,QTY46,QTY47,QTY48,QTY49,QTY50
40772990,52,,,6,,20,,,,,,,,,124,610,,64,,396,,255,,1125,,,,,,,,100,,,,,116,100,24,,,,,300,,60,,,,2708
而其他行不论用哪个查询语句都全部正常。。
这可能是什么原因导致的?
------解决思路----------------------
这不科学,order只会影响查询的结果集的顺序,不可能对结果集有啥影响的
是不是开始查询的时候有数据还未提交?
------解决思路----------------------
tid是字符型的。检查下两个40772990是否是同一个,还是其中一个包含了空格之类的字符
select tid,count(1)
from table1
where tid like '%40772990%'
group by tid;
------解决思路----------------------
TID为40772990的有没有item_id重复的数据?
------解决思路----------------------
LZ 如果你的数据不涉密的话,可以把数据帖上来,有点怪。