【问题标题】:SSRS Validate different results from same columnSSRS 验证来自同一列的不同结果
【发布时间】:2013-12-03 07:02:40
【问题描述】:

我希望我的措辞在提出这个问题时是正确的 - 此查询正在提取发票,并且发票上的项目可以通过行访问 - 我正在尝试验证 xx_isfunctionalservice 在同一张桌子上是否是和否 - 这应该永远是真的

SELECT     ONP_C_ORDERLINE.C_ORDER_ID, ONP_C_ORDERLINE_1.C_ORDER_ID
FROM         ONP_C_ORDERLINE INNER JOIN
                  ONP_M_PRODUCT ON ONP_C_ORDERLINE.M_PRODUCT_ID = ONP_M_PRODUCT.M_PRODUCT_ID INNER JOIN
                  ONP_C_ORDERLINE AS ONP_C_ORDERLINE_1 ON ONP_C_ORDERLINE.C_ORDERLINE_ID = ONP_C_ORDERLINE_1.C_ORDERLINE_ID AND 
                  ONP_M_PRODUCT.M_PRODUCT_ID = ONP_C_ORDERLINE_1.M_PRODUCT_ID INNER JOIN
                  ONP_M_PRODUCT AS ONP_M_PRODUCT_1 ON ONP_C_ORDERLINE.M_PRODUCT_ID = ONP_M_PRODUCT_1.M_PRODUCT_ID
WHERE     (ONP_M_PRODUCT.XX_ISFUNCTIONALSERVICE = 'y') AND (ONP_M_PRODUCT_1.XX_ISFUNCTIONALSERVICE = 'n')
GROUP BY ONP_C_ORDERLINE.C_ORDER_ID, ONP_C_ORDERLINE_1.C_ORDER_ID

我尝试从同一张表中执行此操作,但这没有任何意义 - 我希望调出另一个表可以让我比较同一张表中的两个不同值。我可以通过两个查询来做到这一点,我敢肯定,更容易,但我更愿意保持这个干净

【问题讨论】:

  • 不是 100% 清楚您的要求 - 您需要 xx_isfunctionalservice IN ('y','n') 吗?
  • 你可以看出我是一个 SQL 新手 - 这似乎在做伎俩
  • 话虽如此,这是一个测试真实数据的查询 - 我正在尝试做的实际上是排除任何显示按相同 doc_id 分组的“y”和“n”的内容
  • 我猜 NOT IN('y','n') 似乎是逻辑上的对立面......现在我必须想出一个很好的测试方法......因为它什么也没返回,即使那是我想要什么
  • 我想测试你试试NOT IN ('y') 并确保你的'n'条目显示,然后换成n 并尝试同样的方法。我会将我的评论放在答案中,这样问题就不会“悬而未决”。干杯。

标签: sql visual-studio tsql reporting-services


【解决方案1】:

要检查“y”或“n”,最简洁的解决方案是使用IN

即:

xx_isfunctionalservice IN ('y','n')

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-06-25
    • 2016-08-13
    • 2022-11-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-17
    • 1970-01-01
    相关资源
    最近更新 更多