Re: [SQL ] 字段合并查寻问题

楼主: somnolentcat (普小莉)   2014-02-27 17:15:24
虽然不知道你用的是哪种SQL
不过姊姊只会TSQL啦请将就...
以下
select a.品名,数量,备注 from
(
select 品名,count(品名) as 数量
from [表格合并查询]
where ((DATEDIFF(day, CONVERT(VARCHAR(10), [日期], 110), GETDATE()) = 1) and
CONVERT(VARCHAR(10), 时间, 114) > CONVERT(VARCHAR(10), '15:00:00', 114))
or (((DATEDIFF(day, CONVERT(VARCHAR(10), [日期], 110), GETDATE()) = 0) and
CONVERT(VARCHAR(10), 时间, 114) < CONVERT(VARCHAR(10), '11:00:00', 114)))
GROUP BY 品名) as a inner join
(SELECT 品名,
(
STUFF(
(
SELECT '-' + 备注
FROM [表格合并查询] T2
WHERE T2.品名 = T1.品名
FOR XML PATH('')
)
, 1, 1, ''
)
) AS 备注
FROM [表格合并查询] T1
GROUP BY 品名) as b on a.品名 = b.品名
http://somnolentcat.pixnet.net/blog/post/40437643
※ 引述《joedenkidd (优质的蓝色射手)》之铭言:
: Dear All
: 资料表内,日期(date_1)与时间(time_1)被分成两栏存,字段格式都是text
: date: 20140201
: time: 13:10:11
: 以上是日期时间存的格式
: 表格内容为:
: date time 品名 备注
: 20140226 16:00:00 xx xxx
: 20140226 20:00:00 oo xxxx
: 20140206 23:00:00 oo
: 20140206 23:51:51 tt
: 20140207 06:00:00 xx
: 20140207 08:00:00 88 446
: 希望的结果如下
: 品名 总数 有备注
: xx 2 1
: oo 2 1
: tt 1 0
: 88 1 1
: 我现在遇到一个问题, 我要 查前一天下午三点到今天11点资料,然后计算总数
: select sum(1) from (
: select * from table where (date(date_1)=date(昨天日期) and time_1>'15:00:00')
: union
: select * from table where (date(date_1)=date(今天日期) and time_1<'11:00:00')
: ) as total group by 品名
: 这样子我只能查出 总数资料
: 但我想加上统计有注备(PS)的,我不知道要如何写,另外不知道有没有办法可以两个字段合
: 并查寻
: 麻烦各位如果知道该怎么做能跟我说
作者: joedenkidd (优质的蓝色射手)   2014-03-01 12:47:00
感谢

Links booklink

Contact Us: admin [ a t ] ucptt.com