【发布时间】:2013-10-11 10:42:21
【问题描述】:
我在 SQL 服务器中创建了 3 个名为 t_user_master、t_product_master 和 t_transaction 的表。t_user_master 通过列 Users_id 与 t_transaction 链接,t _product_master 通过列 Products_id 与 t_transaction 链接。现在我必须生成和输出,其中包括users_name(from t_user_master),Product_name(from t_product_master) 与它关联,以便查看哪些使用订购了哪些产品等等。 这是我的代码的 sn-p-
SELECT um.Users_Name,
pm.Product_Name,
(SELECT SUM(Transaction_Amount)
FROM t_transaction
WHERE Transaction_Type = 'Order'
GROUP BY Users_Id,
Product_Id) AS Ordered_quantity,
(SELECT SUM(Transaction_Amount)
FROM t_transaction
WHERE Transaction_Type = 'Payment'
GROUP BY Users_ID,
Product_Id) AS Amount_Paid,
(SELECT MAX(Transaction_Date)
FROM t_transaction
GROUP BY Users_Id,
Product_Id) AS Last_Transaction_Date,
(SELECT ( ( SUM(Transaction_Amount) * pm.Cost_per_Item ) - SUM(Transaction_Amount) ) )AS Balance
FROM t_user_master um
JOIN t_transaction tr
ON um.Users_ID = tr.Users_ID
JOIN t_product_master pm
ON tr.Product_ID = pm.Product_ID
GROUP BY um.Users_Name,pm.Product_Name
我已经说明了所有与语法相关的错误,但现在我面临另一个问题。执行它后,我收到此消息 - 列 't_product_master.Cost_Per_Item' 在选择列表中无效,因为它不包含在任一聚合中函数或 GROUP BY 子句。 我哪里错了?
【问题讨论】:
-
你能给出确切的错误吗?它应该给你它发现问题的确切点,例如:
Incorrect syntax near 'xxx -
@ChrisL L 这是确切的错误 - 消息 102,级别 15,状态 1,第 80 行“产品名称”附近的语法不正确..这里第 80 行指向最后一行
标签: sql sql-server sql-server-2008