darklinboxs
darklinboxs
采纳率51.9%
2018-01-03 02:41

sql 语句优化,将2行查询结果合并到一行。

5
已采纳

select emp_chg_other.s_name,project_table.project_name from kc_billhead,project_table,emp_chg_other,hr_epm_station,fg_ogm_station where kc_billhead.tr_proj=project_table. pc and project_table.pc=emp_chg_other.chg_data and emp_chg_other.emp_id=hr_epm_station.ccode and hr_epm_station.station=fg_ogm_station.cno and hr_epm_station.station='0106' and kc_billhead.billno='CGRK20180102001';

图片说明

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

16条回答

  • u010367576 MrFzy 3年前

    有一种死办法,concat(字段1,字段2)
    具体写法 select concat((select 字段A from 表 where 条件=第一行),(select 字段A from 表 where 条件=第二行));这样即可

    点赞 1 评论 复制链接分享
  • qq_22847605 qq_22847605 3年前

    select
    eco.s_name,pt.project_name
    from kc_billhead kb
    LEFT JOIN project_table pt ON kb.tr_proj= pt. pc
    LEFT JOIN emp_chg_other eco ON pt.pc=eco.chg_data
    LEFT JOIN hr_epm_station hes ON eco.emp_id = hes.ccode and hes.station='0106'
    LEFT JOIN fg_ogm_station fos ON hes.station=fos.cno

    where kb.billno='CGRK20180102001';

    点赞 1 评论 复制链接分享
  • qq_38397400 qq_38397400 3年前

    合并一行?是两个名字拼在一起吗

    点赞 评论 复制链接分享
  • lddroid lddroid 3年前

    这个是行列互换,网上例子很多

    点赞 评论 复制链接分享
  • tianq1986 tianq1986 3年前

    用mysql表连接不就行么???

    点赞 评论 复制链接分享
  • qq_29603937 简单free 3年前

    比如你的可以写成:
    select t1.s_name,group_counct(t2.project_name)

    from emp_chg_other t1,project_table t2 .......

    group by t1.s_name

    根据姓名分组,并将相同姓名的数据合并到一行。
    如果MYSQL 简称不能 这样 project_table t2 写的话,可以加上AS ( project_table AS t2 ),oracle是可以这样用的

    点赞 评论 复制链接分享
  • qq_29603937 简单free 3年前

    mysql 可以用 GROUP_CONCAT 函数,oracle用wm_concat函数。例如:
    区域 城市
    广东 广州
    广东 东莞
    福建 龙岩
    福建 福州
    福建 厦门
    select 区域, GROUP_CONCAT (城市) from table_name group by 区域
    查询结果:
    区域 城市
    广东 广州,东莞
    福建 龙岩,福州,厦门

    本地没装MySQL,你试下应该是可以的。另外,多表关联的时候,建议使用 join in+嵌套 这样比较方便看

    点赞 评论 复制链接分享
  • linghanhed linghanhed 3年前

    两行合并成一行,是 s_name1、s_name2 /project_name1、 project_name2 还是 s_name1/project_name1/ s_name2/project_name2?

    点赞 评论 复制链接分享
  • m0_37404009 m0_37404009 3年前

    前面说的对生成临时表

    点赞 评论 复制链接分享
  • lizifeng09 lizifeng09 3年前

    使用listagg( ) within group ( order by )

    点赞 评论 复制链接分享
  • sinat_30261701 Jenrry_Jen 3年前

    可以使用 LISTAGG 语句 尝试一下

    点赞 评论 复制链接分享
  • qq_22847605 qq_22847605 3年前

    2行合并只能采用临时表了

    点赞 评论 复制链接分享
  • darklinboxs darklinboxs 3年前

    跪求大神教育,优化,msql

    点赞 评论 复制链接分享
  • qq_28164261 qq_28164261 3年前

    这个是mysql数据库把

    点赞 评论 复制链接分享
  • mango_love mango_love 3年前

    可以看看这篇文章,sql的纵横查询,希望能够帮助你
    http://blog.csdn.net/mango_love/article/details/51210020

    点赞 评论 复制链接分享
  • jacshan jacshan 3年前

    oracle数据库吗?

    点赞 评论 复制链接分享

相关推荐