Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 我想要唯一的BillNum,但当我在select中使用Note列时,它会返回BillNum三次_C#_Sql Server 2008 - Fatal编程技术网

C# 我想要唯一的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

我想要唯一的BillNum,但当我在select中使用Note列时,它会返回BillNum三次

我尝试了以下查询:

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