C# 我想要唯一的BillNum,但当我在select中使用Note列时,它会返回BillNum三次
我想要唯一的BillNum,但当我在select中使用Note列时,它会返回BillNum三次 我尝试了以下查询:C# 我想要唯一的BillNum,但当我在select中使用Note列时,它会返回BillNum三次,c#,sql-server-2008,C#,Sql Server 2008,我想要唯一的BillNum,但当我在select中使用Note列时,它会返回BillNum三次 我尝试了以下查询: select distinct finalBillSum, BillNum, purchaseDate, supName, Note from purchaseInvoice where purchaseDate
select distinct finalBillSum,
BillNum,
purchaseDate,
supName,
Note
from purchaseInvoice
where purchaseDate >= '2017-09-24' and
purchaseDate <= '2017-09-24'
group by finalBillSum,
BillNum,
purchaseDate,
supName,
Note
如果您想要唯一的
BillNum
并使用Group By
,则该列必须是Group By
使用的唯一列,否则可能会重复BillNum
(因为其他列不同)。在这种情况下,注释
不同。也许从组中删除此列就足够了。或者,您可能希望使用SUM(finalBillSum)
对其他列进行聚合。然后计算每组的总和
SELECT finalBillSum = SUM(finalBillSum),
BillNum
PurchaseDate,
SupName = MIN(SupName),
Note = MIN(Note)
From purchaseInvoice
WHERE PurchaseDate >= '2017-09-24' and PurchaseDate <= '2017-09-24'
GROUP BY BillNum, PurchaseDate
选择finalBillSum=SUM(finalBillSum),
比尔纳姆
购买日期,
SupName=MIN(SupName),
注=最小值(注)
从采购发票
其中PurchaseDate>='2017-09-24'和PurchaseDate有三个不同的注释。获取BillNum=6I的三条记录是正确的,无论使用Note如何,我都会返回一条BillNum,然后不要将注释添加到查询中I使用select中的注释在中显示它datagridview@fatima我认为你应该规范你的数据库:把笔记移到另一个表中,主表中每一个BillNum有一行。谢谢,但它给了我这个操作数数据类型nvarchar(max)对于sum运算符无效。@fatima您不应该将钱存储为字符串。如果需要存储货币,则应将其与金额分开存储。从purchaseInvoice中选择finalBillSum、BillNum PurchaseDate、SupName=MIN(SupName)、Note=MIN(Note),其中PurchaseDate>='2017-09-24'和PurchaseDate
SELECT finalBillSum = SUM(finalBillSum),
BillNum
PurchaseDate,
SupName = MIN(SupName),
Note = MIN(Note)
From purchaseInvoice
WHERE PurchaseDate >= '2017-09-24' and PurchaseDate <= '2017-09-24'
GROUP BY BillNum, PurchaseDate