ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 5960|回复: 8

[求助] 将表中一列中的固定数值转换成两列或多列该如何查询,大家看看

[复制链接]

TA的精华主题

TA的得分主题

发表于 2009-6-26 14:55 | 显示全部楼层 |阅读模式
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
一般查询都是 select * from *
现在某表中有一列含有以下固定值比如说 1 、2、3等,如何将该列查询出3列来重新排列。第一列为1、第二列为2、第三列为3.

SQL库中有两张表 如下所示

产品表
字段名  产品名称  单位组
数据    a        1
数据    b        2
数据    c        3
。。。。。。。。。。。。。

单位表
字段名  单位组  辅计量序号  换算率
数据      KONG        null      null
数据        1          1        2
数据        1          2        4
数据        2          1        3
数据        2          2        6
数据        3          1        5
数据        3          2        10
。。。。。。。。。。。。。。。。。。

想查询出一张表的内容如下
字段名    产品名称    单位组    辅计量1换算率  辅计量2换算率
数据        a          1            2            4
数据        b          2            3            6
数据        c          3            5            10
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

请问如何查询呢。SQL语句应该怎么写。(求助,刚接触SQL)

字段查询.rar

4.2 KB, 下载次数: 8

TA的精华主题

TA的得分主题

发表于 2009-6-27 02:19 | 显示全部楼层
SQL语句:
select 产品名称,i.单位组,辅计量1换算率,辅计量2换算率  from ( select 单位组,sum(a1) AS 辅计量1换算率,sum(a2) AS 辅计量2换算率 from (select 单位组,换算率 AS a1,0 AS a2 from [单位表数据$] where 单位序号=1 union all select 单位组,0,换算率 from [单位表数据$] where 单位序号=2 ) group by 单位组 ) i,[产品表数据$] j where i.单位组=j.单位组

字段查询.rar

8.32 KB, 下载次数: 22

TA的精华主题

TA的得分主题

 楼主| 发表于 2009-7-1 17:00 | 显示全部楼层
看了好久都不明白,也不知道如何下手。主要是我这个本来是一个sql数据库中的两个表。我把数据转换成excel表以便说明问题。现在想问下如果是用excel vba从sql库中查询的话应该怎样写呢?因为要查询比如说是产品名称的话会带上一个数据表的名称是
产品表.产品名称。那上面写的 i.单位组,应该是写成i.产品表.单位组。是这样吗?另外查询出两列来的语法我我怎么测试都错。可以先写如果查询出1列即 辅计量1换算率的数据吗。这样我便于理解一些。我想如果能查询出辅计量1换算率。再研究查询出两列来会更好。希望版主可以教我。

TA的精华主题

TA的得分主题

 楼主| 发表于 2009-7-1 18:01 | 显示全部楼层
还是不明白啊。测试了。也没有通过。到底是哪里出问题了呢。还是我表述不清楚。我重新说明一下。

SQL库中有两张表 如下所示

比如说产品表中有两个字段,具体情形如下:

产品表
产品名称  单位组
  a        1
  b        2
  c        3
。。。。。。。。

单位表中有三个字段,具体情形如下:

单位表
单位组  辅计量序号  换算率
KONG        null      null
  1          1        2
  1          2        4
  2          1        3
  2          2        6
  3          1        5
  3          2        10
。。。。。。。。。。。。。。。。。。

想查询出一张表的内容如下
产品名称    单位组    辅计量1换算率  辅计量2换算率
   a          1            2            4
   b          2            3            6
   c          3            5            10
。。。。。。。。。。。。。。。。。。。。。。。。


我是在excel 的vba 中使用这个sql 的。如果我要查询产品表的资料的时候。我会录入
SQL="select 产品表.产品名称,产品表.单位组 from 产品表"

那在上面应该怎么样完整的输入哪些语句呢。

另外如果产品表中的产品单位组编码为空的话。也挑选出空的单位换算率来。多谢大侠帮忙看看了

TA的精华主题

TA的得分主题

发表于 2009-7-8 15:20 | 显示全部楼层
我给你的是用技巧法做的
数据》导入外部数据》导入数据》选择给文件的路径文件》确定》编辑查询》编辑OLE DB 查询窗体中有3个部分,刚才连接的数据源显示在上面窗体中Data Source=文件全名》然后讲SQL语句输入到下面的命令文本中。
select 产品名称,i.单位组,辅计量1换算率,辅计量2换算率  from ( select 单位组,sum(a1) AS 辅计量1换算率,sum(a2) AS 辅计量2换算率 from (select 单位组,换算率 AS a1,0 AS a2 from [单位表数据$] where 单位序号=1 union all select 单位组,0,换算率 from [单位表数据$] where 单位序号=2 ) group by 单位组 ) i,[产品表数据$] j where i.单位组=j.单位组
如果你用的是产品表和单位表,你将代码copy到txt文件,用产品表和单位表分别替换产品表数据和单位表数据。
select 产品名称,i.单位组,辅计量1换算率,辅计量2换算率  from ( select 单位组,sum(a1) AS 辅计量1换算率,sum(a2) AS 辅计量2换算率 from (select 单位组,换算率 AS a1,0 AS a2 from [单位表$] where 单位序号=1 union all select 单位组,0,换算率 from [单位表$] where 单位序号=2 ) group by 单位组 ) i,[产品表$] j where i.单位组=j.单位组
附加用到你的电脑,记得修改数据源的文件名称,刷新就可以了。
另外如果产品表中的产品单位组编码为空的话。也挑选出空的单位换算率来。要实现这个就需要你在两个表中有对应数据关系,否则没法实现的。
如果你要用到VBA中,该语句可以直接应用的。

字段查询.rar

8.23 KB, 下载次数: 22

TA的精华主题

TA的得分主题

 楼主| 发表于 2009-7-24 11:16 | 显示全部楼层
拜谢版主。我试了您的表。更新链接后可以以EXCEL的表的形式进行查询。但是我往vba控件中加相应的代码后。没有成功。主要是我接触VBA的时间不长。没弄明白。现在我把我实际在用的查询数据库的表发上来。请版主帮我看看怎么加进去这些语句。我这个实际查询的报表现在又3张表。第1张表是计量单位表更新。我做了个宏按钮每次可以进行更新。第2张表是存货档案更新。也有一个宏按钮进行更新。现在希望就是合并成一张表。就是含有存货档案和按两种辅计量单位来更新。我这个表的vba 连接sql 的库进行查询。sql语句都在vba中。

那么这段语句“select 产品名称,i.单位组,辅计量1换算率,辅计量2换算率  from ( select 单位组,sum(a1) AS 辅计量1换算率,sum(a2) AS 辅计量2换算率 from (select 单位组,换算率 AS a1,0 AS a2 from [单位表$] where 单位序号=1 union all select 单位组,0,换算率 from [单位表$] where 单位序号=2 ) group by 单位组 ) i,[产品表$] j where i.单位组=j.单位组”


应该如何加在第二张表中。希望斑竹抽空帮我看下。不胜感谢

求助档案更新.rar

217.77 KB, 下载次数: 17

TA的精华主题

TA的得分主题

 楼主| 发表于 2009-7-25 18:05 | 显示全部楼层
版主帮忙看下就是说在原有的存货档案表中的VBA代码中如何加入这些语句。而可以省略掉计量单位表的更新。

TA的精华主题

TA的得分主题

 楼主| 发表于 2009-7-27 08:45 | 显示全部楼层
版主有空帮我将这些语句加入到我的excel表中的VBA代码吧。

TA的精华主题

TA的得分主题

发表于 2009-7-28 21:51 | 显示全部楼层
在“求助档案更新2”中
将计量单位的辅计量序号空值填充0值,因为在Excel中前面空值时字段没法提取数据,在“求助档案更新”中,新生成的数据字段“辅计量序号”一列中丢失数据,用该字段作为条件,就不再有记录出来。
计量单位表中有一个列表命名为单位表,因为数据表不是标准的数据表结果
存货档案表中有一个列表命名为产品表
辅计量1换算率        辅计量序号0值时的换算率
辅计量2换算率        辅计量序号1值时的换算率
辅计量3换算率   辅计量序号2值时的换算率
SQL语句为:
select j.*,i.辅计量1换算率,i.辅计量2换算率,i.辅计量3换算率
from 产品表 j left join
(
select 计量单位组编码,sum(a1) AS 辅计量1换算率,sum(a2) AS 辅计量2换算率 ,sum(a3) AS 辅计量3换算率
from
(
select 计量单位组编码,换算率 AS a1,0 AS a2 ,0 AS a3
from 单位表
where 辅计量序号=0
union all
select 计量单位组编码,0,换算率,0
from 单位表
where 辅计量序号=1
union all
select 计量单位组编码,0,0,换算率
from 单位表
where 辅计量序号=2
)
group by 计量单位组编码
) i on i.计量单位组编码=j.计量单位组编码
order by 存货编码

求助档案更新.rar

564.9 KB, 下载次数: 34

您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-17 05:50 , Processed in 0.046818 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

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