以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  字符类表格如何转置?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=189735)

--  作者:lur320
--  发布时间:2023/12/22 8:49:00
--  字符类表格如何转置?
 如图,纵向的字符类表格如何用sql命令横向展开?

图片点击可在新窗口打开查看此主题相关图片如下:捕获2.png
图片点击可在新窗口打开查看

我使用了下面的sql 命令,展开后有很多空格,什么是准确的命令?

图片点击可在新窗口打开查看此主题相关图片如下:捕获.png
图片点击可在新窗口打开查看

---------------------------
Selct 检验单号,Case When 测试项 = \'报告日期\' Then 结论 Else null End, Case When 测试项 = \'大肠埃希菌\' Then 结论 Else null End,xxxxxxxxxxxxx From {QC数据} where 批号 in (\'231111001\',\'231111002\') group by 检验单号
---------------------------


--  作者:有点蓝
--  发布时间:2023/12/22 8:54:00
--  
正确的结果应该是怎么样的?手工填写一份对比一下看看
--  作者:lur320
--  发布时间:2023/12/22 8:58:00
--  
 正确的应该是这样:相当于去掉了所有的空格。

图片点击可在新窗口打开查看此主题相关图片如下:捕获23.png
图片点击可在新窗口打开查看


--  作者:有点蓝
--  发布时间:2023/12/22 9:15:00
--  
就以3楼图片的10个检验单号为例,导出这10个单的原始数据发过来测试一下。同时把3楼的表格也发上来
[此贴子已经被作者于2023/12/22 9:16:42编辑过]

--  作者:lur320
--  发布时间:2023/12/22 10:15:00
--  
 
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:12.xls
有两页excel,第一页是源数据,第二页是想要展现的报告。

--  作者:lur320
--  发布时间:2023/12/22 10:40:00
--  
 我在网上找个这个方法,但是foxtable报错:
Slect group_concat(distinct concat(\'max(if(测试项="\',测试项,\'",结论,null)) as "\',测试项,\'"\')) from {QC数据} where 批号 in (\'231115301\',\'231115302\',\'231115303\')

不存在group_concat 聚合函数。

--  作者:有点蓝
--  发布时间:2023/12/22 11:16:00
--  
access

Select 检验单号,批号,max(iif(测试项 = \'大肠埃希菌\',结论,NULL)) As 大肠埃希菌,max(iif(测试项 = \'霉菌酵母菌\',结论,NULL)) As 霉菌酵母菌,max(iif(测试项 = \'需氧菌\',结论,NULL)) As 需氧菌,max(iif(测试项 = \'含量\',结论,NULL)) As 含量  From {原数据} Group by 检验单号,批号

SqlServer

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
--  发布时间:2023/12/22 13:23:00
--  
 还有一个问题,转移字符不起作用,因为有些列带符号,怎么解决?

Slect 检验单号,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 测试项 = \'总杂(除杂质B外)≤2.0%\' Then 结论 Else null End) as \\" 总杂(除杂质B外)≤2.0% \\" From {QC数据} where 批号 in (\'221114403\') group by 检验单号

--  作者:lur320
--  发布时间:2023/12/22 13:32:00
--  
 OK了,只要加单引号就可以了
as \\" 总杂(除杂质B外)≤2.0% \\" 改为 as ‘总杂(除杂质B外)≤2.0%‘