我(未成功)在 Invoices 表上使用相关子查询:
Invoices(InvoiceID, VendorID, InvoiceTotal, PaymentTotal, CreditTotal,.... ),
Run Code Online (Sandbox Code Playgroud)
找到所有供应商的最大未付发票的总和,其中未付条件由下式给出InvoiceTotal-PaymentTotal-CreditTotal <0:
Select Sum(LargestUnpaid) from
(Select Max(InvoiceTotal) AS LargestUnpaid from Invoices
where InvoiceTotal-(PaymentTotal+CreditTotal)<0 group by vendorID ) ;
Run Code Online (Sandbox Code Playgroud)
内部查询运行,有好有坏,因为查询应该是相关的,但查询作为一个整体没有运行,我收到错误消息:
Msg 102, Level 15, State 1, Line 4 Incorrect syntax near ')'.
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
这里有没有人在Azure 数据仓库数据库上创建和使用 UDF 很幸运?我正在将本地仓库从 SQL Server 2014 迁移到 Azure 数据仓库,但遇到了 UDF 问题。
CREATE FUNCTION dbo.fn_GetImpliedRate (@Multiple float, @term int)
RETURNS float
AS
BEGIN
DECLARE @ImpInt float
IF(@Term = 1)
SET @ImpInt = (select [1] from dbo.ImpliedRate where Multiple = @Multiple);
IF(@Term = 2)
SET @ImpInt = (select [2] from dbo.ImpliedRate where Multiple = @Multiple);
IF(@Term = 3)
SET @ImpInt = (select [3] from dbo.ImpliedRate where Multiple = @Multiple);
IF(@Term = 4)
SET @ImpInt = (select [4] from dbo.ImpliedRate …Run Code Online (Sandbox Code Playgroud) 希望有人能澄清如何从 SQL Server 2012 中执行此查询,或者它可能在问什么;似乎我被要求做一个将聚合与非聚合相结合的查询,这导致了一个看似不可能的查询,因为一个人只能按出现在Select子句中的字段进行分组,这会使查询变得混乱。
我被要求对表进行查询Invoices:
Invoices (InvoiceID, VendorID,InvoiceDate, InvoiceTotal,...)
Run Code Online (Sandbox Code Playgroud)
我被要求执行一个生成 6 列的查询:3 列已经“按原样”出现在表中: VendorID, InvoiceDate, InvoiceTotal
其他 3 列是聚合:
4) Sum(InvoiceTotal) AS VendorTotal: 每个发票的总和VendorID
5) Count(InvoiceID) AS VendorCount: 每个发票的数量VendorId
6) Avg(InvoiceTotal) AS VendorAvg: 平均每张发票VendorId
现在,问题是不能在同一个查询中组合(除了我不能在这里使用的例外)聚合和非聚合,除非按非聚合分组。所以我可以这样做:
Select
VendorId, InvoiceDate, InvoiceTotal,
Sum(InvoiceTotal) AS VendorTotal,
Count(InvoiceId) AS VendorCount,
Avg(InvoiceTotal) AS VendorAvg
GROUP BY
VendorID
Run Code Online (Sandbox Code Playgroud)
现在,如果我只是group by VendorID. 但是为了获得有效的查询,如果我选择其中一个InvoiceDate或InvoiceTotal——两个非聚合——我必须按它们中的每一个分组以获得有效的查询。
但是按这最后两个分组基本上会撤消其他聚合:如果我按发票日期分组,我将丢失按供应商的聚合,因为每个供应商都有不同的发票日期。
我尝试过进行自联接,在 中使用Invoices AS I1 join Invoices …