http://www.sufeinet.com/plugin.php?id=keke_group

苏飞论坛

 找回密码
 马上注册

QQ登录

只需一步,快速开始

分布式系统框架(V2.0) 轻松承载百亿数据,千万流量!讨论专区 - 源码下载 - 官方教程

HttpHelper爬虫框架(V2.7-含.netcore) HttpHelper官方出品,爬虫框架讨论区 - 源码下载 - 在线测试和代码生成

HttpHelper爬虫类(V2.0) 开源的爬虫类,支持多种模式和属性 源码 - 代码生成器 - 讨论区 - 教程- 例子

查看: 6435|回复: 11

[其他] 一个SQL 大家看下怎么做的,求指教。

[复制链接]
发表于 2013-1-8 17:07:20 | 显示全部楼层 |阅读模式
自定义字段导出
  一个相关导出是加在客户页面下面,除了2个基本的ID和NAME外,要导出b_Custom_Field中tableID中和他关联的数据,b_Custom_Field有张对应详细字段的表b_Custom_Field_Option,可以通过TableID和FieldID去关联
导出的列为ID,NAME,对应client的信息,后面的列就是在b_Custom_Field表中查出来的相关数据,每行都是一列,答案可以去其TableID中的表里面查找.

   b_Custom_Field表里的Label字段是用户自定义字段,每一行的数据代表一个列,其对应的TableID字段里的值是一个表名,TableID中显示的是
[code=sql]select * from b_Client_Info_KOL
select * from b_Client_Info_Marketing [/code]
     这两张表,表里的ClientID字段跟客户表b_Client的ClientID字段是相关联的。
导出的效果如下,ClientID,ClientName,产品认可度,参加学术项目简述(时间、角色、效果),附加信息,身份证号码,联系电话,所在单位全称,电子邮件,单位类别,子类别,主要学会/协会职务等。

       现在要实现的效果就是b_Custom_Field表的Label字段要行转列,同时把对应的值给拿到,还得拼接上b_Client表的ID,Name.
请问大家有谁能帮我指导迷津麽?谢谢了。我邮箱 471191560@qq.com.可以找我要关键表的数据库。谢谢大家,帮忙看看。
[code=sql]select [b_Client].ClientID, [b_Client].ClientName
       from b_Client
      left join b_Client_Info_KOL on b_Client.ClientID=b_Client_Info_KOL.ClientID
      left join b_Client_Info_Marketing on b_Client.ClientID=b_Client_Info_Marketing.ClientID
      and b_Client_Info_KOL.ClientID=b_Client_Info_Marketing.ClientID
      WHERE ([b_Client].ClientID LIKE '%%'
        AND [b_Client].ClientName LIKE '%%'
        AND [b_Client].ClientType LIKE '%%'
        AND [b_Client].InstitutionID LIKE '%%'
        AND [b_Client].DeptID LIKE '%%'
        AND [b_Client].TitleID LIKE '%%'
        AND [b_Client].PriorityPotential LIKE '%%'
        AND [b_Client].Status='ACTIVE')
    ORDER BY [b_Client].ClientID ASC    [/code]            
这条Sql就是查到页面显示的客户id,客户姓名,后面and条件是页面上的模糊查询
[code=sql]select * from b_Client_Info_KOL
select * from b_Client_Info_Marketing [/code]
这两张表里面都有ClientID(客户ID)


1. 开通SVIP会员,免费下载本站所有源码,不限次数据,不限时间
2. 加官方QQ群,加官方微信群获取更多资源和帮助
3. 找站长苏飞做网站、商城、CRM、小程序、App、爬虫相关、项目外包等点这里
 楼主| 发表于 2013-1-8 17:48:19 | 显示全部楼层
本帖最后由 zhongshuangqian 于 2013-1-10 13:50 编辑

     ------------
发表于 2013-1-8 18:54:57 | 显示全部楼层
没能明白你的问题是什么,建议你把代码整整,看着比较费力啊,
 楼主| 发表于 2013-1-9 10:51:33 | 显示全部楼层
admin 发表于 2013-1-8 18:54
没能明白你的问题是什么,建议你把代码整整,看着比较费力啊,

问题就是总共用到五张表,b_Client ,
b_Custom_Field,
b_Custom_Field_Option,
b_Client_Info_KOL,
b_Client_Info_Marketing
现在要得到的效果就是 查出b_Client 表的ClientID,ClientName,还有b_Custom_Field表的所有Label列的数据,每一条数据都是一个列(行转列),数据对应的值去 b_Client_Info_KOL,b_Client_Info_Marketing表中查找, b_Client_Info_KOL,b_Client_Info_Marketing表中都有ClientID列,跟用户表b_Client 想关联, b_Custom_Field_Option跟b_Custom_Field都有TableID,FieldID,是相关联的。
效果就是得到用户的自定义字段的值一起显示出来。
 楼主| 发表于 2013-1-9 11:09:06 | 显示全部楼层
[code=sql]select b_Custom_Field_Option.label from b_Custom_Field_Option
inner join b_Custom_Field on b_Custom_Field_Option.FieldID=b_Custom_Field.FieldID
inner join b_Client_Info_KOL on b_Custom_Field.FieldID=b_Client_Info_KOL.FieldID
and b_Client_Info_KOL.OptionID=b_Custom_Field_Option.OptionID
where b_Custom_Field.Label='产品认可度'
and CLientID='3ab6261b-dc4a-410b-b4a3-c4016ca67be6'
   
select ClientID 客户代码,ClientName 姓名 from b_Client where ClientID='3ab6261b-dc4a-410b-b4a3-c4016ca67be6' [/code]

这样得到的分别是这个客户的产品认可度的值是高,然后查到了他的代码跟姓名,
现在就是要将这个拼接起来,显示在一起。

发表于 2013-1-9 11:28:46 | 显示全部楼层
[code=sql]select b_Custom_Field_Option.label from b_Custom_Field_Option
inner join b_Custom_Field on b_Custom_Field_Option.FieldID=b_Custom_Field.FieldID
inner join b_Client_Info_KOL on b_Custom_Field.FieldID=b_Client_Info_KOL.FieldID
and b_Client_Info_KOL.OptionID=b_Custom_Field_Option.OptionID,ClientID b1.客户代码,b1.ClientName 姓名
where b_Custom_Field.Label='产品认可度'
and CLientID='3ab6261b-dc4a-410b-b4a3-c4016ca67be6'
   INNER JOIN  b_Client as b1 on ClientID=b_Custom_Field_Option.CLientID[/code]
 楼主| 发表于 2013-1-9 11:37:34 | 显示全部楼层
admin 发表于 2013-1-9 11:28

这样不行呃,站长,可否Q上跟你说?
 楼主| 发表于 2013-1-9 11:53:22 | 显示全部楼层
admin 发表于 2013-1-9 11:28

总共用到五张表,b_Client(ClientID,ClientName)
b_Custom_Field(TableID,FieldID,InputType(输入类型),Label(要行转列的字段))
b_Custom_Field_Option(TableID,FieldID,OptionID,Label,Value)
b_Client_Info_KOL(ClientID,FieldID,OptionID)
b_Client_Info_Marketing(ClientID,FieldID)


   相关导出加在客户下面,除了2个基本的ID和NAME外,要导出b_Custom_Field中tableID中和他关联的数据,b_Custom_Field有张对应详细字段的表b_Custom_Field_Option,可以通过TableID和FieldID去关联
导出的列为ID,NAME,对应client信息,后面的列就是在b_Custom_Field表中查出来的相关数据,每行都是一列,答案可以去其TableID中的表里面查找



更多图片 小图 大图
组图打开中,请稍候......
 楼主| 发表于 2013-1-9 12:00:00 | 显示全部楼层
admin 发表于 2013-1-8 18:54
没能明白你的问题是什么,建议你把代码整整,看着比较费力啊,

select [b_Client].ClientID 客户代码, [b_Client].ClientName 姓名
       from b_Client
      left join b_Client_Info_KOL on b_Client.ClientID=b_Client_Info_KOL.ClientID
      left join b_Client_Info_Marketing on b_Client.ClientID=b_Client_Info_Marketing.ClientID
      and b_Client_Info_KOL.ClientID=b_Client_Info_Marketing.ClientID
      WHERE ([b_Client].ClientID LIKE '%%'
        AND [b_Client].ClientName LIKE '%%'
        AND [b_Client].ClientType LIKE '%%'
        AND [b_Client].InstitutionID LIKE '%%'
        AND [b_Client].DeptID LIKE '%%'
        AND [b_Client].TitleID LIKE '%%'
        AND [b_Client].PriorityPotential LIKE '%%'
        AND [b_Client].Status='ACTIVE')
    ORDER BY [b_Client].ClientID ASC


更多图片 小图 大图
组图打开中,请稍候......
 楼主| 发表于 2013-1-10 10:38:19 | 显示全部楼层
{:soso_e101:}
您需要登录后才可以回帖 登录 | 马上注册

本版积分规则

QQ|手机版|小黑屋|手机版|联系我们|关于我们|广告合作|苏飞论坛 ( 豫ICP备18043678号-2)

GMT+8, 2024-4-20 13:24

© 2014-2021

快速回复 返回顶部 返回列表