这是我的查询 - 通过SAP查询工具创建:
SELECT DISTINCT
T1.CardCode,
T1.CardName,
T1.Phone1,
T1.GroupCode,
T1.Territory,
T2.Street,
T2.Block,
T2.City,
T2.ZipCode,
T2.County,
T2.State,
T2.Country,
count(distinct(T3.DocEntry)) as NumberOfInvoices,
sum(distinct(T4.GTotal)) as InvoiceTotal
FROM
[ASAP].[dbo].[OCRD] as T1
INNER JOIN [ASAP].[dbo].[CRD1] as T2 ON T1.CardCode = T2.CardCode
INNER JOIN [ASAP].[dbo].[OINV] as T3 on T1.CardCode = T3.CardCode
INNER JOIN [ASAP].[dbo].[INV1] as T4 on T3.DocEntry = T4.DocEntry
WHERE
T1.Territory = [%0]
AND T3.DocDate >= [%1]
AND T3.DocDate <= [%2]
GROUP BY
T1.CardCode,
T1.CardName,
T1.Phone1,
T1.GroupCode,
T1.Territory,
T2.Street,
T2.Block,
T2.City,
T2.ZipCode,
T2.County,
T2.State,
T2.Country
这是我收到的错误 - 你可以清楚地看到我在Group By中有这个字段:
请告知
答案 0 :(得分:1)
删除Distinct
。你已经在分组了,所以你不需要那样。不确定是否能解决您的错误。
我也非常怀疑你不希望distinct
或count()
内有sum()
。当然,您想要将所有发票总额加起来,而不仅仅是那些不同的发票总额?使用当前语法,如果您有两个具有相同总数的不同发票,则会跳过一个。
编辑:如果您已经从用户传递 区域中的,为什么还需要在查询中选择?只需在事后在UI中重新添加它,或者执行:
SELECT ..., [%0] AS Territory, ...
而不是使用该字段。
答案 1 :(得分:0)
我发布的代码没有出现错误,您确定发送的内容与您发布的内容相符。我说因为错误引用了'ASAP.dbo.OCRD.Territory',你的查询中没有。