首页 \ 问答 \ 如何重复显示重复值一次,如果重复,则显示“ - ”(How can I display repeated values only one time and have '-' if it repeats)

如何重复显示重复值一次,如果重复,则显示“ - ”(How can I display repeated values only one time and have '-' if it repeats)

我有一些子查询可以为每个PolicyNumber检索相同的值。 如何用' - '替换重复值,并且只在每个策略的顶行显示一个? 现在我有这个: 在此处输入图像描述 但是我需要这样的东西: 在此处输入图像描述

 SELECT
    -------------/* GrossPremium*/

           (SELECT ISNULL(SUM(tblFin_InvoiceDetails.AmtBilled), 0)
                 FROM tblFin_InvoiceDetails WITH (NOLOCK)
                 WHERE (tblFin_InvoiceDetails.ChargeType = 'P')
                 AND (tblFin_InvoiceDetails.InvoiceNum = INV.InvoiceNum))
                 AS GrossPremium

--------------/*CompanyCommissionPercentage*/

                ,((SELECT ISNULL(SUM(tblFin_InvoiceDetails.MGAAmt), 0)
                 FROM tblFin_InvoiceDetails
                 WHERE (tblFin_InvoiceDetails.ChargeType = 'P')
                 AND (tblFin_InvoiceDetails.InvoiceNum = INV.InvoiceNum))
                 +
                    CASE WHEN INV.Remitter = 'B' then
                    (SELECT ISNULL(SUM(tblFin_InvoiceDetails.RemitterAmt), 0)
                     FROM tblFin_InvoiceDetails  
                     WHERE (tblFin_InvoiceDetails.ChargeType = 'P')
                     AND (tblFin_InvoiceDetails.InvoiceNum = INV.InvoiceNum))----------------RemitterCommission

                ELSE
                    (SELECT ISNULL(SUM(tblFin_InvoicedItemsPayees.PayeeAmt), 0) 
                     FROM tblFin_InvoicedItemsPayees
                    INNER JOIN tblFin_PolicyCharges pc on pc.ChargeCode = tblFin_InvoicedItemsPayees.ChargeCode and pc.chargeType = 'P'   
                     WHERE (tblFin_InvoicedItemsPayees.InvoiceNum = INV.InvoiceNum and tblFin_InvoicedItemsPayees.PayeeGuid = INV.ProducerLocationGuid))
                END) * 100 / 
                NULLIF((SELECT ISNULL(SUM(tblFin_InvoiceDetails.AmtBilled), 0)
                 FROM tblFin_InvoiceDetails WITH (NOLOCK)
                 WHERE (tblFin_InvoiceDetails.ChargeType = 'P')
                 AND (tblFin_InvoiceDetails.InvoiceNum = INV.InvoiceNum)),0)
                 AS CompanyCommissionPercentage
FROM [tblFin_PayablesWorking] PW
INNER JOIN tblFin_Invoices INV ON PW.InvoiceNumber=INV.InvoiceNum

I have some subqueries that retreives the same values for each PolicyNumber. How can I substitute repeated value with '-' and only display it one in a top row for each policy? Right now I have this: enter image description here But I need something like this: enter image description here

 SELECT
    -------------/* GrossPremium*/

           (SELECT ISNULL(SUM(tblFin_InvoiceDetails.AmtBilled), 0)
                 FROM tblFin_InvoiceDetails WITH (NOLOCK)
                 WHERE (tblFin_InvoiceDetails.ChargeType = 'P')
                 AND (tblFin_InvoiceDetails.InvoiceNum = INV.InvoiceNum))
                 AS GrossPremium

--------------/*CompanyCommissionPercentage*/

                ,((SELECT ISNULL(SUM(tblFin_InvoiceDetails.MGAAmt), 0)
                 FROM tblFin_InvoiceDetails
                 WHERE (tblFin_InvoiceDetails.ChargeType = 'P')
                 AND (tblFin_InvoiceDetails.InvoiceNum = INV.InvoiceNum))
                 +
                    CASE WHEN INV.Remitter = 'B' then
                    (SELECT ISNULL(SUM(tblFin_InvoiceDetails.RemitterAmt), 0)
                     FROM tblFin_InvoiceDetails  
                     WHERE (tblFin_InvoiceDetails.ChargeType = 'P')
                     AND (tblFin_InvoiceDetails.InvoiceNum = INV.InvoiceNum))----------------RemitterCommission

                ELSE
                    (SELECT ISNULL(SUM(tblFin_InvoicedItemsPayees.PayeeAmt), 0) 
                     FROM tblFin_InvoicedItemsPayees
                    INNER JOIN tblFin_PolicyCharges pc on pc.ChargeCode = tblFin_InvoicedItemsPayees.ChargeCode and pc.chargeType = 'P'   
                     WHERE (tblFin_InvoicedItemsPayees.InvoiceNum = INV.InvoiceNum and tblFin_InvoicedItemsPayees.PayeeGuid = INV.ProducerLocationGuid))
                END) * 100 / 
                NULLIF((SELECT ISNULL(SUM(tblFin_InvoiceDetails.AmtBilled), 0)
                 FROM tblFin_InvoiceDetails WITH (NOLOCK)
                 WHERE (tblFin_InvoiceDetails.ChargeType = 'P')
                 AND (tblFin_InvoiceDetails.InvoiceNum = INV.InvoiceNum)),0)
                 AS CompanyCommissionPercentage
FROM [tblFin_PayablesWorking] PW
INNER JOIN tblFin_Invoices INV ON PW.InvoiceNumber=INV.InvoiceNum

原文:https://stackoverflow.com/questions/39605127
更新时间:2024-04-23 11:04

最满意答案

如果我理解正确,首先要确定与给定datetime范围内的多个category关联的username值:

SELECT   username
FROM     myTable
WHERE    datetime BETWEEN :start AND :end
GROUP BY username
HAVING   COUNT(DISTINCT category) > 1

然后,您想要检索给定datetime范围内的所有记录,这些用户名按usernamedatetime时间排序:

SELECT   *
FROM     myTable NATURAL JOIN (
           SELECT   username
           FROM     myTable
           WHERE    datetime BETWEEN :start AND :end
           GROUP BY username
           HAVING   COUNT(DISTINCT category) > 1
         ) t
WHERE    datetime BETWEEN :start AND :end
ORDER BY username, datetime

If I've understood correctly, you first want identify those username values that are associated with more than one category in the given datetime range:

SELECT   username
FROM     myTable
WHERE    datetime BETWEEN :start AND :end
GROUP BY username
HAVING   COUNT(DISTINCT category) > 1

And then you want to retrieve all records within the given datetime range for those usernames, sorted by username and datetime:

SELECT   *
FROM     myTable NATURAL JOIN (
           SELECT   username
           FROM     myTable
           WHERE    datetime BETWEEN :start AND :end
           GROUP BY username
           HAVING   COUNT(DISTINCT category) > 1
         ) t
WHERE    datetime BETWEEN :start AND :end
ORDER BY username, datetime

相关问答

更多

最新问答

更多
  • CSS修复容器和溢出元素(CSS Fix container and overflow elements)
  • SQL多个连接在与where子句相同的表上(SQL Multiple Joins on same table with where clause)
  • nginx 80端口反向代理多个域名,怎样隐藏端口的
  • xcode提醒样式,swift 3(xcode alert style, swift 3)
  • 在Chrome控制台中调试JavaScript(debugging javascript in Chrome console)
  • Javascript - 试图围绕自定义事件(Javascript - Trying to wrap my head around custom events)
  • 边栏链接不可点击(Sidebar links aren't clickable)
  • 使用recpatcha gem时如何显示其他表单错误?(How do I display other form errors when using the recpatcha gem?)
  • boost.python避免两次注册内部类,但仍然在python中公开(boost.python Avoid registering inner class twice but still expose in python)
  • Android 现在软件很少吗?以后会多起来吗
  • 如何在ActiveAdmin 0.5.0中为资源全局指定预先加载?(How to specify eager loading globally for a resource in ActiveAdmin 0.5.0?)
  • matlab代码为黄金比例持续分数(matlab code for golden ratio continued fraction)
  • Android浏览器触摸事件位置(Android browser touch event location)
  • 将cURL输出分配给Bash中的变量(Assign output to variable in Bash)
  • 我如何在MVC视图上没有时间获取当前日期(how i can get current date without time on MVC view)
  • sql连接函数(sql join of function)
  • 为什么在Xamarin Media插件中使用ImageSource.FromStream而不是FromFile?(Why use ImageSource.FromStream instead of FromFile in Xamarin Media plugin?)
  • 这段代码是否真的可以防止SQL注入?(Will this code actually work against SQL-injection? [duplicate])
  • 信阳方远计算机学校大专证被国家认可么
  • React / Rails AJAX POST请求返回404(React/Rails AJAX POST request returns 404)
  • Android与php服务器交互(Android interact with php server)
  • 自动刷新QTableWidget可能吗?(Refresh QTableWidget automatically possible?)
  • JVM / Compiler优化对象的未使用属性(optimization of unused properties of object by JVM / Compiler)
  • 插入表格时,乌克兰字符会更改为问号(Ukrainian character change to question mark when insert to table)
  • 在头文件中包含异常类(Including an exception class in a header file)
  • 完成c#中的执行后关闭sqlcmd(Close sqlcmd after finishing executing in c#)
  • 使用软导航栏正确检测屏幕尺寸(Detecting screensize correctly with soft navigation bar)
  • Typescript:从输入更新值(Typescript : update value from input)
  • 如何在执行某些行后仅在断点处停止?(How to only stop at a breakpoint after some line was executed?)
  • 以未定义的元素在JSON中循环(loop in JSON with undefined elements)