Tag: tsql powerquery

单元格内容作为Excel中“WHERE”语句的一部分

我一直在寻找几个星期,但在寻找对以下问题的答案方面还没有取得太大的成功… 我可以在Excel中创build文本框(在开发人员选项中),然后将用户input的文本框内容作为SQL(T-SQL)中的WHERE语句的一部分吗? 理想情况下,我希望用户能够input一个3位数的ID号码,然后点击searchbutton,在相同或不同的工作表上显示结果列表。 如果一个文本框不是那么简单,那么我会解决一个单元格的内容,而不是文本框内容的引用。 像这样的东西: SELECT T.CustomerName, T.NetAmount, T.TransactionType FROM TheDatabase.dbo.TransactionsTable T WHERE T.ScheduledDate > '2016-01-01' AND (T.Status = 'InProcess' OR T.Status = 'Completed') AND T.CustomerID = [textbox1.contents / cell(A1).. something] 我知道SQL不是这样devise的,但我希望它能说明我正在努力完成什么。 一些背景: 我正在向同事传递一些责任,因为我正在转向不同的angular色。 我有一个定期运行的报告,提供了关于应付账款交易的统计信息。 我不得不在一夜之间学习一些基本的SQL,并且在deviseSELECT语句和学习中一直很成功。 问题是,当我需要添加一个新的客户(基本上是一个3位数字)到我的账户清单来审查,我不得不修改查询。 这对我来说没什么大不了的,我只是打开PowerQuery,select高级视图,然后编辑代码。 我不能为下一个人修复这个工具,所以我需要一种方法来search他们想要的客户。 我可以加载所有的客户,但是主表中有超过360万个事务,有超过30个字段。 PLUS在3个数据库中至less有6个表,我将它们连接在一起来计算所有的信息。 上一次我试图检索所有的交易数据,因为我的系统内存不足,使我停止生产。 我成功地查询了这么多的数据,花了近10分钟。 老实说,这对我来说不是问题,但是这个人必须一直运行这个,我需要加快速度。 正如我所看到的,消除这个问题的唯一方法就是仅仅拉取我需要的交易。 当我现在这样做,它需要3秒钟。 我一直在使用的查询是在Microsoft SQL Server Management Studio中创build的,我基本上复制查询并在Excel中创build查询时将其粘贴到“高级”框中。 任何有关这方面的build议都会对现在和将来的项目都有所帮助!