104_Power Query 数据库条件查询
博客:www.jiaopengzi.com
1、应用场景
底层数据在数据库(sql server数据库,其他数据库同理,下文不再说明。)中,Excel中有查询的字段,需要在数据库中查询相关信息;
2、举个栗子
A、数据库内容
创建测试表:kucunbiaosql 代码,自己建个测试库,我测试库:kucun
use kucun
create table kucunbiao
(
统计日期 date
,sku varchar(20)
,库存 int
)
insert into kucunbiao(统计日期,sku,库存)
VALUES
('2018/9/17','1001', 1)
,('2018/9/17','1002', 2)
,('2018/9/17','1003', 3)
,('2018/9/17','1004', 4)
,('2018/9/17','1005', 5)
,('2018/9/16','1001', 10)
,('2018/9/16','1002', 20)
,('2018/9/16','1003', 30)
,('2018/9/16','1004', 40)
,('2018/9/16','1005', 50)
select * from kucunbiao
B、Excel内容

Excel内容
需要从待查询的sku中,在数据库中查询,统计日期为:2019/9/16的库存信息,结果为:查询结果。
3、上pq语句
基本思路,用Sql.Database函数,四个参数分别为:数据库ip地址,数据库名称,sql语句,timeout时长。
构建四个参数。
let
SKU明细 = Table.TransformColumnTypes(Excel.CurrentWorkbook(){[Name="SKU"]}[Content],{{"SKU", type text}})[SKU],
//取表中的sku
计数 = List.Count(SKU明细)-1,
//计数用在后续参数中
日期 = Text.From(Date.From(DateTime.LocalNow())-#duration(1,0,0,0)),
//日期查询为2018/9/16,因为是今天所以减去一天,转换为文本用于后续文本连接。
ip = "127.0.0.1",
//数据IP地址为本机,注意mysql等需要端口号,sql server 用的默认端口1433
数据库 = "kucun",
//测试数据库:kucun
sql_0 = "select SKU into #SKULS #(lf)from kucunbiao #(lf)where 1=2 #(lf) #(lf) ",
//创建临时表
sql_1 = Text.Combine(List.Transform({0..计数},(X)=> "insert into #SKULS (SKU) values('"& SKU明细{X} &"')"),"#(lf)")&"#(lf) #(lf)",
//将【SKU明细】中sku写入临时表,sql_2构建完整的sql查询语句。
sql_2 = "select A.SKU, A.库存
from
(
select SKU,sum(库存) as 库存
from kucunbiao
where 统计日期='"&日期&"'
group by SKU
) as A
inner join
(
select SKU from #SKULS
) as B
on
A.SKU=B.SKU
drop table #SKULS",
sql = sql_0
&sql_1
&sql_2,
结果 = Sql.Database(ip, 数据库, [Query=sql, CommandTimeout=#duration(0, 0, 10, 0)])
in
结果
分步图解
分步1:清洗得到sku
分步2:计数-1得到索引







4、说明
首次使用会有凭据信息填写。
此案例适合小量数据条件查询,大量数据还请直接使用数据库。
思维的重点就是构建,要什么给什么。
by焦棚子
104_Power Query 数据库条件查询的更多相关文章
- jpa中使用Query判断条件查询
jpa中使用Query判断条件查询 @Query(value = " select m.* from mining_area as m " + " where 1 = 1 ...
- [NHibernate]条件查询Criteria Query
目录 写在前面 文档与系列文章 条件查询 一个例子 总结 写在前面 上篇文章介绍了HQL查询,我个人觉得使用ORM框架就是为了让少些sql,提高开发效率,而再使用HQL就好像还是使用sql,就觉得有点 ...
- 【Java EE 学习 17 下】【数据库导出到Excel】【多条件查询方法】
一.导出到Excel 1.使用DatabaseMetaData分析数据库的数据结构和相关信息. (1)测试得到所有数据库名: private static DataSource ds=DataSour ...
- [转]NHibernate之旅(4):探索查询之条件查询(Criteria Query)
本节内容 NHibernate中的查询方法 条件查询(Criteria Query) 1.创建ICriteria实例 2.结果集限制 3.结果集排序 4.一些说明 根据示例查询(Query By Ex ...
- nhibernate教程(4)--条件查询(Criteria Query)
NHibernate之旅(4):探索查询之条件查询(Criteria Query) 2008-10-16 18:20 by 李永京, 44341 阅读, 43 评论, 收藏, 编辑 本节内容 NHi ...
- 利用PHP访问数据库——实现分页功能与多条件查询功能
1.实现分页功能 <body><table width="100%" border="1"> <thead> < ...
- 第20课-数据库开发及ado.net 可空值类型,资料管理器,多条件查询,Case
第20课-数据库开发及ado.net 可空值类型,资料管理器,多条件查询,Case SqlHelper using System; using System.Collections.Generic; ...
- tp框架where条件查询数据库
tp框架where条件查询数据库 Where 条件表达式格式为: $map['字段名'] = array('表达式', '操作条件'); 其中 $map 是一个普通的数组变量,可以根据自己需求而命名. ...
- 三十二:数据库之SQLAlchemy.query函数可查询的数据和聚合函数
准备工作 from sqlalchemy import create_engine, Column, Integer, String, Floatfrom sqlalchemy.ext.declara ...
随机推荐
- 9_根轨迹_Part3_分离点/汇合点和根的性质
- [译]HTML&CSS Lesson5: 定位
CSS最大的用处之一就是可以将内容和元素定位到任何我们想要的位置,使我们的设计具有结构,使内容更加易懂. CSS有好几种不同的定位属性,每种都有自己的使用场景.在这节课中我们会通过不同的案例--可复用 ...
- 搭建 SpringBoot 项目(前端页面 + 数据库 + 实现源码)
SpringBoot 项目整合源码 SpringBoot 项目整合 一.项目准备 1.1 快速创建 SpringBoot 项目 1.2 项目结构图如下 1.3 数据表结构图如下 1.4 运行结果 二. ...
- Vue脚手架结构及vue-router路由配置
首先官网介绍,用 Vue.js + vue-router 创建单页应用,是非常简单的.使用 Vue.js ,我们已经可以通过组合组件来组成应用程序,当你要把 vue-router 添加进来,我们需要做 ...
- phpshe xml注入
*php商城系统 xml注入* **页面样式* *Xml原理参考:* https://www.cnblogs.com/20175211lyz/p/11413335.html *漏洞函数simplexm ...
- 02 | 自己动手,实现C++的智能指针
第一步:针对单独类型的模板 为了完成智能指针首先第一步的想法. class shape_wrapper { public: explicit shape_wrapper( shape* ptr = n ...
- 时间篇之linux系统时间和RTC时间
一.linux系统下包含两个时间:系统时间(刚启动时读取的是rtc时间)和RTC时间. 一般情况下都会选择芯片上最高精度的定时器作为系统时间的定时基准,以避免在系统运行较长时间后出现大的时间偏移.特点 ...
- Java学习day8
今天学习了package,import,final,static和多态 package可以理解为文件夹,因为有些类可能重名,如果在同一个目录下就无法正常实现,所有需要有不同的包来装对应的类 Java出 ...
- 牛客网 第十八届浙大城市学院程序设计竞赛(同步赛)J--万万没想到 啦啦啦啦啦
我觉得我可以继续wa下去(手动魔鬼笑)-------------------------------------------- 原题链接:https://ac.nowcoder.com/acm/c ...
- 开始项目之前整理Xmind
今天为将要做的项目整理了一份Xmind文档,每个页面,模块,功能都记了下来.带我的老师说过于详细了,但我还是新手,也不懂哪里改精简那里不该. 总结:整理Xmind文档还是很有必要的,之前这个项目我大致 ...