首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在同一个表sql查询中联接2行

问在同一个表sql查询中联接2行
EN

Stack Overflow用户
提问于 2013-01-23 20:00:00
回答 3查看 2K关注 0票数 0

您好,是否有一个查询会产生以下结果?

代码语言:javascript
复制
  name                       count    
  19 - Evening ACL           1130
  21 - 14 - 16 Provision     585
  81 - HE FT                 458
  85 - HE PT                 233

如何才能使查询连接的两行包含'HE‘。我追求的结果是:

代码语言:javascript
复制
  name                    count
  19 - Evening ACL        1130
  21 - 14 - 16 Provision  585
  HE                      691

下面是我使用的查询

代码语言:javascript
复制
SELECT 
vc.vc_name,
COUNT(DISTINCT s.s_studentreference) AS 'Count'

FROM

student s
INNER JOIN person p ON p.p_id = s.s_id
INNER JOIN moduleenrolment e ON e.e_student = p.p_id
INNER JOIN module m ON m.m_id = e.e_module
LEFT JOIN valid_codes vc ON vc.vc_code = m.m_mode AND vc.vc_domain = 'moa'

WHERE

LEFT(m.m_reference, 2) IN ('12')


GROUP BY

m.m_mode,
vc.vc_name

ORDER BY

m.m_mode,
vc.vc_name

谢谢

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-01-23 20:19:26

试试这个(假设'HE'的两边各有一个空格);

代码语言:javascript
复制
select name, count
from yourTable where charindex(' he ',name)=0
union
select 'HE' name, sum(count) as count
from yourTable where charindex(' he ',name)>0

另一种方式是;

代码语言:javascript
复制
select A.name, sum(A.count) as count
from (
    select case charindex(' he ',name) 
           when 0 then name else 'HE' end name, count
    from yourTable
) A
group by A.name
order by A.name
票数 1
EN

Stack Overflow用户

发布于 2013-01-23 20:53:16

原始结果集中的列"name“只是一个列,还是它是通过连接数据生成的计算列?

使用原力(就像绝地武士一样),我会说它似乎将数字与描述和字母PT,FT连接在一起……

如果是这样的话..您必须在group子句中标识包含HE描述的两行中的不同之处...我打赌在第一个结果中给出字母"P“和"F”的列在group子句中...所以你应该把他们从群里剪掉..看看他们是如何..。(在mySQL中有GROUP_CONCAT()命令,但在sqlserver中,我猜仍然没有本机函数来执行此操作,但有许多技术可以获得此结果)

但通过这种方式,你会得到这条线

81 - 85 HE PFT 691

如果您发布第一个结果集的查询,将有助于更好地理解您的问题并给出解决方案

不管怎样..。如果不是这样,我不明白为什么您要将这两行合并为一行。但唯一的解决方案是确定哪些名称具有类似Kaf的“HE”解决方案。

票数 1
EN

Stack Overflow用户

发布于 2013-01-23 20:16:41

您需要创建另一个列,即包含要联接的信息的计算列-即在单独的列中提取该信息(示例的HE)。

如果您有很多行,请考虑创建一个视图并在该列上添加索引(从而实现视图),以加快连接速度。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14479213

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档