SQL联接查询以获取借方余额不等于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

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 
               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