博客:www.jiaopengzi.com

焦棚子的文章目录

请点击下载

1、应用场景

底层数据在数据库(sql server数据库,其他数据库同理,下文不再说明。)中,Excel中有查询的字段,需要在数据库中查询相关信息;

2、举个栗子

A、数据库内容

创建测试表:kucunbiao

sql 代码,自己建个测试库,我测试库: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得到索引

分步3:构建查询日期条件

分步4:构建ip

分步5:构建数据库名称

分步6:构建临时表sql语句

分步7:构建插入临时表数据sql语句

分步8:构建内连接查询sql语句

分步9:组合所有sql语句

分步10:利用Sql.Database查询结果

4、说明

首次使用会有凭据信息填写。

此案例适合小量数据条件查询,大量数据还请直接使用数据库。

思维的重点就是构建,要什么给什么。

by焦棚子

焦棚子的文章目录

104_Power Query 数据库条件查询的更多相关文章

  1. jpa中使用Query判断条件查询

    jpa中使用Query判断条件查询 @Query(value = " select m.* from mining_area as m " + " where 1 = 1 ...

  2. [NHibernate]条件查询Criteria Query

    目录 写在前面 文档与系列文章 条件查询 一个例子 总结 写在前面 上篇文章介绍了HQL查询,我个人觉得使用ORM框架就是为了让少些sql,提高开发效率,而再使用HQL就好像还是使用sql,就觉得有点 ...

  3. 【Java EE 学习 17 下】【数据库导出到Excel】【多条件查询方法】

    一.导出到Excel 1.使用DatabaseMetaData分析数据库的数据结构和相关信息. (1)测试得到所有数据库名: private static DataSource ds=DataSour ...

  4. [转]NHibernate之旅(4):探索查询之条件查询(Criteria Query)

    本节内容 NHibernate中的查询方法 条件查询(Criteria Query) 1.创建ICriteria实例 2.结果集限制 3.结果集排序 4.一些说明 根据示例查询(Query By Ex ...

  5. nhibernate教程(4)--条件查询(Criteria Query)

    NHibernate之旅(4):探索查询之条件查询(Criteria Query) 2008-10-16 18:20 by 李永京, 44341 阅读, 43 评论, 收藏,  编辑 本节内容 NHi ...

  6. 利用PHP访问数据库——实现分页功能与多条件查询功能

    1.实现分页功能 <body><table width="100%" border="1">  <thead>    < ...

  7. 第20课-数据库开发及ado.net 可空值类型,资料管理器,多条件查询,Case

    第20课-数据库开发及ado.net 可空值类型,资料管理器,多条件查询,Case SqlHelper using System; using System.Collections.Generic; ...

  8. tp框架where条件查询数据库

    tp框架where条件查询数据库 Where 条件表达式格式为: $map['字段名'] = array('表达式', '操作条件'); 其中 $map 是一个普通的数组变量,可以根据自己需求而命名. ...

  9. 三十二:数据库之SQLAlchemy.query函数可查询的数据和聚合函数

    准备工作 from sqlalchemy import create_engine, Column, Integer, String, Floatfrom sqlalchemy.ext.declara ...

随机推荐

  1. 前端进阶(12) - css 的弱化与 js 的强化

    css 的弱化与 js 的强化 web 的三要素 html, css, js 在前端组件化的过程中,比如 react.vue 等组件化框架的运用,使 html 的弱化与 js 的强化 成为了一种趋势, ...

  2. 小程序输入框闪烁BUG解决方案

    前言 本人所说的小程序,都是基于mpvue框架而上的,因此BUG可能是原生小程序的,也有可能是mpvue的. 问题描述 在小程序input组件中,如果使用v-model进行双向绑定,在输入时会出现光标 ...

  3. 驳《我不是很懂 Node.js 社区的 DRY 文化》

    今天在群里有人讨论方老师的文章<我不是很懂 Node.js 社区的 DRY 文化>,我也看了一遍,槽点太多,不知道如何下笔. 方老师分析了几个依赖最多的 npm 包,每个都只有不到百行代码 ...

  4. 关于json对象的使用小结!

    json是前后端数据交互的关键.后端提供的接口中的数据几乎都是通过json来表现的,所以,需要对这个json做一些小结: 这里要推进谷歌的插件Fehelp前端助手,这个可以清楚的看到json的数据: ...

  5. caioj 1002: [视频]实数运算2[水题]

    题意:输入三个数,计算并输出它们的平均值以及三个数的乘积,结果保留2位小数. 题解:简单题不写题解了-- 代码: #include <cstdio> double a, b, c; int ...

  6. 超星尔雅看课刷题小tips

    用chrom浏览器,先安装扩展程序Tampermonkey BETA 然后进入> https://greasyfork.org/zh-CN 找一款适合自己的脚本安装即可刷课.

  7. [个人配置] VSCode Better Comments 扩展配置、高亮注释插件

    在VSCode IDE中,我的代码注释一般都有高亮颜色,那要怎么安装这个插件呢?

  8. Azure Virtual Desktop(一)创建配置管理

    一,引言 Azure 虚拟创面是一项 Azure 服务,可以让我们管理: 1)VDI(虚拟桌面基础架构) 2)云端的 RDSH:RDSH 是 RDS(远程桌面服务)中的一个角色.这些类型的服务器用于托 ...

  9. 2021.08.09 P7238 迷失森林(树的直径)

    2021.08.09 P7238 迷失森林(树的直径) P7238 「DCOI」迷失森林 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 重点: 1.树的直径两种求法:两次dfs.树 ...

  10. python基础练习题(题目 递归求阶乘)

    day18 --------------------------------------------------------------- 实例026:利用递归方法求5! 分析:递归包括递归体和递归条 ...