mysql - SSRS 在数据集中的单个列上选择不同

标签 mysql sql sql-server reporting-services

我目前有一个 View (具有大型且复杂的联接结构),可以将大量数据提取到报告 SSRS 中。现在,对于某些报告,流经报告的每条记录都有一个重复行,使其无用。我注意到它对某些报告执行此操作,而不是所有报告,这确实让我感到困惑,因为如果基本查询中存在错误,它们都应该有重复的错误。无论如何,我试图在基本 View 中查找原因,但无法'想不出任何办法。

我确实注意到一件事,结果集的每一行中唯一唯一的是名为“Position_Number”的列。因此,在数据集属性中,我认为在列上放置 DISTINCT 很容易,但结果发现这是不可能的。我尝试了很多查询,但似乎都不起作用。

  • 行号似乎不起作用,因为数据集属性不支持它

      row_number() over (partition by field1 order by field2)
    
  • GROUP BY 不起作用

我尝试了来自各地的一系列与此类似的查询:

 SELECT * FROM
vw_InvoiceOilPhyInspectionFees AS G1
JOIN (SELECT  findetail_position, max(vw_invoice_invoicedate) as mostrecent 
     FROM  view_Fees group by  findetail_position) AS G2
 ON G2. findetail_position = G1. findetail_position and g2.mostrecent = g1.vw_invoice_invoicedate
ORDER BY G1. findetail_position

TL:DR:我真正想问的是......从 SSRS 报告的结尾来看,基本上在结果​​集列之一上有 SELECT DISTINCT 吗?我觉得我处于一个奇怪的中间状态,没有任何解决方案有效......

最佳答案

当您获得重复行时,可以通过执行 DISTINCT 或使用 GROUP BY 来抑制它们。就您而言,GROUP BY 是正确的选择。技术:GROUP BY 重复的列,并对看起来唯一并导致重复行的列使用 Max() (或等效)。

例如,对于这样的数据:

First   Last        City  Zone
-----  ------  ---------- ----
Joe,   Smith,  Cleveland,   1
Bill,Johnson,    Atlanta,   6
Mike,  Truax,   St.Louis,   1  <-- is this the dupe?
Mike,  Truax,   St.Louis,   2  <-- or is it this one?
Eric,  Jones,   Brussels,   4

使用如下查询:

SELECT First, Last, City, Max(Zone) AS Zone
FROM thatTable
GROUP BY First, Last, City

产生相同的结果,没有重复的行

First   Last        City  Zone
-----  ------  ---------- ----
Joe,   Smith,  Cleveland,   1
Bill,Johnson,    Atlanta,   6
Mike,  Truax,   St.Louis,   2  <-- after applying a Max() aggregate
Eric,  Jones,   Brussels,   4

当然,很明显我有点过于简化了。具体来说,我不希望您有这样的印象:任何任意列上的 Max() 总是会给您带来您想要的结果。不,先生!这只是抑制重复行的唯一列的一种方法。在某些情况下,这样做可能是完全错误的。

因此,请与您的用户核实并确认最大或最小(或省略一列等)是正确的做法。如果没有,那么当它“正常工作”时,找出他们期望看到的内容。然后应用适当的聚合。

关于mysql - SSRS 在数据集中的单个列上选择不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21536801/

相关文章:

mysql - 更改或重置 mysql 用户的密码

MySQL - 试图将 3 个 SELECTS 合并为一个

PHP 按两列相加排序

mysql - 将 JSON 存储在数据库中与每个键都有一个新列

php - 如何通过 PHP 将 Unicode 数据更新到 SQL Server?

sql-server - 如何从 SQL Server 中的表中查询 Xml 值和属性?

MySQL 在 SELECT 中引用嵌套查询结果?

sql - 如何对数据中包含 '%'的列执行Like in SQL?

php - mySQL PHP 打印多行结果

php - MySQL从表中获取数据并检查表行中是否存在userid