SQL联接查询以获取借方余额不等于0的项目名称、日期和借方余额之和?
SQL Join查询以获取借方余额不等于0的项目名称、日期和借方余额总和。将其附加到查询中:SQL联接查询以获取借方余额不等于0的项目名称、日期和借方余额之和?,sql,sql-server,Sql,Sql Server,SQL Join查询以获取借方余额不等于0的项目名称、日期和借方余额总和。将其附加到查询中: SELECT dbo.items.NAME, CONVERT(VARCHAR(20), dbo.warehouse.date, 101)AS Date, Sum (dbo.warehouse.debit) AS Quantity FROM dbo.warehouse INNER JOIN dbo.items
SELECT dbo.items.NAME,
CONVERT(VARCHAR(20), dbo.warehouse.date, 101)AS Date,
Sum (dbo.warehouse.debit) AS Quantity
FROM dbo.warehouse
INNER JOIN dbo.items
ON dbo.warehouse.businessunitid = dbo.items.businessunitid
AND dbo.warehouse.itemid = dbo.items.itemid
GROUP BY dbo.items.NAME,
CONVERT(VARCHAR(20), dbo.warehouse.date, 101)
具有总和(dbo.warehouse.debit)0
引用——您的sql看起来像t-sql--
拥有(Transact-SQL)
指定组或聚合的搜索条件。HAVING只能与SELECT语句一起使用。HAVING通常用于GROUPBY子句中。当不使用GROUPBY时,HAVING的行为类似于WHERE子句
你正在寻找一个新的条款。将其附加到查询中:
SELECT dbo.items.NAME,
CONVERT(VARCHAR(20), dbo.warehouse.date, 101)AS Date,
Sum (dbo.warehouse.debit) AS Quantity
FROM dbo.warehouse
INNER JOIN dbo.items
ON dbo.warehouse.businessunitid = dbo.items.businessunitid
AND dbo.warehouse.itemid = dbo.items.itemid
GROUP BY dbo.items.NAME,
CONVERT(VARCHAR(20), dbo.warehouse.date, 101)
具有总和(dbo.warehouse.debit)0
引用——您的sql看起来像t-sql--
拥有(Transact-SQL)
指定组或聚合的搜索条件。HAVING只能与SELECT语句一起使用。HAVING通常用于GROUPBY子句中。当不使用GROUPBY时,HAVING的行为类似于WHERE子句
看起来您正在使用SQL Server
HAVING Sum (dbo.warehouse.debit) <> 0
这假设w.debit
从来都不是负数。(在金融应用中,美元金额通常为正。)当然,如果可以为负,您可能需要:
SELECT i.NAME,
CONVERT(VARCHAR(20), w.date, 101 ) AS Date,
Sum(w.debit) AS Quantity
FROM dbo.warehouse w INNER JOIN
dbo.items i
ON w.businessunitid = i.businessunitid AND
w.itemid = i.itemid
GROUP BY i.NAME, CONVERT(VARCHAR(20), w.date, 101)
HAVING Sum(w.debit) > 0;
但是SQLServer不支持这一点
还要注意表别名的使用。这使得编写和读取查询更加容易。看起来您正在使用SQL Server
HAVING Sum (dbo.warehouse.debit) <> 0
这假设w.debit
从来都不是负数。(在金融应用中,美元金额通常为正。)当然,如果可以为负,您可能需要:
SELECT i.NAME,
CONVERT(VARCHAR(20), w.date, 101 ) AS Date,
Sum(w.debit) AS Quantity
FROM dbo.warehouse w INNER JOIN
dbo.items i
ON w.businessunitid = i.businessunitid AND
w.itemid = i.itemid
GROUP BY i.NAME, CONVERT(VARCHAR(20), w.date, 101)
HAVING Sum(w.debit) > 0;
但是SQLServer不支持这一点
还要注意表别名的使用。这使得编写和阅读查询更加容易。要小心,匹配的问题应该是
的Sum(w.debit)0代码>小心,匹配问题应该是的总和(w.借方)为0代码>