You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

T-SQL多表关联查询求助:需按店铺、商品统计销售数据

调整T-SQL查询以返回店铺名称和已售出商品信息

嘿,我来帮你搞定这条查询!先明确下你的需求:要返回(a)店铺名称和(b)已售出的商品信息,对吧?咱们先看看你现有查询里的问题,再给出调整后的方案。

问题分析

你原来的查询里有两个明显的问题:

  • GROUP BY 子句里用的是Store、Item,但SELECT里对应的是S.StoreName、I.ItemName,这会导致语法错误——GROUP BY必须和SELECT中的非聚合列完全对应。
  • 如果只是要列出每笔交易的店铺和商品信息,GROUP BY其实是多余的,它会把相同组合的行合并,但你没有用任何聚合函数,这完全没必要。

方案1:列出每笔交易的店铺与商品信息

如果你的需求是展示每一笔交易对应的店铺名称和售出商品(包含每笔交易的金额),直接去掉GROUP BY即可:

SELECT 
    S.StoreName, 
    I.ItemName, 
    T.CreditAmount, 
    T.DebitAmount 
FROM TransactionsTable T 
LEFT JOIN ItemsTable I ON I.Id = T.ItemID 
LEFT JOIN StoresTable S ON S.Id = T.StoreId

这个查询会返回所有交易记录,每一行对应一笔交易的店铺、商品和金额信息。

方案2:按店铺和商品汇总交易金额

如果你的“已售出商品信息”需要汇总(比如每个店铺每个商品的总信用额、总借记额),那就要用聚合函数配合GROUP BY:

SELECT 
    S.StoreName, 
    I.ItemName, 
    SUM(T.CreditAmount) AS TotalCreditAmount, 
    SUM(T.DebitAmount) AS TotalDebitAmount 
FROM TransactionsTable T 
LEFT JOIN ItemsTable I ON I.Id = T.ItemID 
LEFT JOIN StoresTable S ON S.Id = T.StoreId
GROUP BY S.StoreName, I.ItemName

这里用SUM()来计算每个店铺每个商品的总交易金额,GROUP BY也对应到StoreName和ItemName,确保语法正确且结果符合汇总需求。

如果你的“已售出商品信息”还有其他细节(比如销量统计),可以再补充需求,我再帮你调整!

内容的提问来源于stack exchange,提问作者OggyPops

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 03:39:29