Foxtable(狐表)用户栏目专家坐堂 → 转置表格时,如何对列进行排序


  共有1972人关注过本帖树形打印复制链接

主题:转置表格时,如何对列进行排序

帅哥哟,离线,有人找我吗?
lur320
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1030 积分:8973 威望:0 精华:0 注册:2015/8/12 16:28:00
转置表格时,如何对列进行排序  发帖心情 Post By:2023/12/22 14:02:00 [只看该作者]

 如附件,源数据有一列是代表列位置的数据,
原本是通过sql addnew逐一添加的行,所以测试项是行倒序
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:12.xls


图片点击可在新窗口打开查看

所以通过转置后,发现是列是倒序,问如何按照源数据的ind编号进行排序?
SQL的命令:
Select 检验单号,批号,max(Case When 测试项 = '大肠埃希菌' Then 结论 Else NULL End) As ‘大肠埃希菌’,max(Case When 测试项 = '霉菌酵母菌' Then 结论 Else NULL End) As ’霉菌酵母菌‘,max(Case When 测试项 = '需氧菌' Then 结论 Else NULL End) As ’需氧菌‘,max(Case When 测试项 = '含量' Then 结论 Else NULL End) As ’含量‘ From {学生成绩} Group by 检验单号,批号

现在的结果:
正确的是 大肠埃希菌 应当按ind编号,排在最右边。
图片点击可在新窗口打开查看


 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110574 积分:562760 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2023/12/22 14:06:00 [只看该作者]

自己调整一下sql的字符

Select 检验单号,批号,max(Case When 测试项 = '霉菌酵母菌' Then 结论 Else NULL End) As ’霉菌酵母菌‘,max(Case When 测试项 = '需氧菌' Then 结论 Else NULL End) As ’需氧菌‘,max(Case When 测试项 = '含量' Then 结论 Else NULL End) As ’含量‘ ,max(Case When 测试项 = '大肠埃希菌' Then 结论 Else NULL End) As ‘大肠埃希菌’ From {学生成绩} Group by 检验单号,批号

 回到顶部
帅哥哟,离线,有人找我吗?
lur320
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1030 积分:8973 威望:0 精华:0 注册:2015/8/12 16:28:00
  发帖心情 Post By:2023/12/22 14:08:00 [只看该作者]

 是指MAX这段的先后顺序吗?

 回到顶部
帅哥哟,离线,有人找我吗?
lur320
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1030 积分:8973 威望:0 精华:0 注册:2015/8/12 16:28:00
  发帖心情 Post By:2023/12/22 14:11:00 [只看该作者]

 Ok了,
我在拼接sql的时候,按照ind排序就行。谢谢。

combolis = DataTables("QC数据").SQLGetValues("测试项", "批号 in (" & lis & ")","ind") '得到所选测试项'    
    ae = combolis.ToArray()'测试项加工成串
    Dim t, t1 As String
    For Each tes As String In ae
        t = t & "max(Case When 测试项 = '" & tes & "' Then 结论 Else null End) as '" & tes & "',"
    Next
    t = t.Trim(",")
    t1 = "Se1ect 检验单号," & t & " From {QC数据} where 批号 in (" & lis & ") group by 检验单号"
  
    Dim q As New QueryBuilder
    q.TableName = "QC数据表"
    q.C
    q.SelectString = t1
    q.Build
    MainTable = Tables("QC数据表")

 回到顶部