Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/27.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
Sql 从用户查询返回的行不正确_Sql_Sql Server_Database_Join_Stored Procedures - Fatal编程技术网

Sql 从用户查询返回的行不正确

Sql 从用户查询返回的行不正确,sql,sql-server,database,join,stored-procedures,Sql,Sql Server,Database,Join,Stored Procedures,对于SQLs,我是一个新手,在这方面我需要一些帮助,这对我来说有点太复杂了,无法消化和使其工作。我这里有一个存储过程,当客户端输入搜索参数时,它将为客户端显示一个报告 我的表格如下: TXN_RMReport-RMRID(主键)、rmrPlant(fk,来自FO_财产)、rmrCID(fk,来自RM_类别)、rmrBusinessArea、rmrCostCenter、rmrWCCode、RMRRreportedby FO_属性-PID(主键)、pCode、pMappingCode(包含RM_业务

对于SQLs,我是一个新手,在这方面我需要一些帮助,这对我来说有点太复杂了,无法消化和使其工作。我这里有一个存储过程,当客户端输入搜索参数时,它将为客户端显示一个报告

我的表格如下:

  • TXN_RMReport-RMRID(主键)、rmrPlant(fk,来自FO_财产)、rmrCID(fk,来自RM_类别)、rmrBusinessArea、rmrCostCenter、rmrWCCode、RMRRreportedby

  • FO_属性-PID(主键)、pCode、pMappingCode(包含RM_业务区的baBusinessArea)

  • RM_类别-CID(主键)

  • RM_业务区-BAID(主键),BAB业务区(代码,非fk),BAD说明

  • RM_成本中心-CCID(pk)、ccCostCenter、ccCompCode(代码,基于FO_财产的pMappingCode,而非fk)、ccBusinessArea(代码,基于baBusinessArea,而非fk)、ccDescription

  • SEC_用户-UID(pk)、uName、uReportedBy

  • 弗兰肯斯坦的问题是,RM_成本中心的CCID没有用于任何用途。为了使成本中心的数据对报告具有唯一可识别性,它需要参考ccCompCode、ccCostCenter和ccBusinessArea

    例如,我有两个名为“RWB”和“RWMS”的pCode值,ccCostCenter的“200”和“201”都映射到ccBusinessArea的“FB”,但对“200”和“印度口味”分别有不同的描述“FOOD FACTORY”和“COFFEE TERRACE”,对“201”分别有不同的描述,总共有4种独特的组合

    用户可以从数据库中选择数据来填写表单。然后,他们可以将报告插入TXN_RMReport。当他们想用属性上的空参数查询其现有条目时,会出现问题,导致不正确和重复的行,这些行从一开始就没有添加,因为“200”或任何其他数字映射到两个不同的代码“RWB”和“RWMS”

    我如何重写它,这样就不会得到错误的行

    不正确的表格:

    +------+------+---------+-------------+------------+--------------+-------------+
    | Code | Area | CCenter | DESCRIPTION | ReportedBy |   Remarks    | CreatedDate |
    +------+------+---------+-------------+------------+--------------+-------------+
    | RWB  | FB   |     200 | CTERRACE    | TANTAN     | NO CAKE      | 20/01/2017  |
    | RWB  | FB   |     200 | FAVENUE     | TANTAN     | NO CAKE      | 20/01/2017  |
    | RWMS | CS   |     501 | BACCARAT    | JIM        | SCRATCHED    | 20/01/2017  |
    | RWB  | ADMC |     700 | CAFETERIA   | JIM        | BROKEN TILES | 21/01/2017  |
    | RWB  | ADMC |     700 | HRESOURCE   | JIM        | BROKEN TILES | 21/01/2017  |
    | RWMS | FB   |     200 | CTERRACE    | ELSA       | LEAKING PIPE | 20/01/2017  |
    | RWMS | FB   |     200 | FAVENUE     | ELSA       | LEAKING PIPE | 20/01/2017  |
    +------+------+---------+-------------+------------+--------------+-------------+
    
    预期结果:

    +------+------+---------+-------------+------------+--------------+-------------+
    | Code | Area | CCenter | DESCRIPTION | ReportedBy |   Remarks    | CreatedDate |
    +------+------+---------+-------------+------------+--------------+-------------+
    | RWB  | FB   |     200 | CTERRACE    | TANTAN     | NO CAKE      | 20/01/2017  |
    | RWMS | CS   |     501 | BACCARAT    | JIM        | SCRATCHED    | 20/01/2017  |
    | RWB  | ADMC |     700 | CAFETERIA   | JIM        | BROKEN TILES | 21/01/2017  |
    | RWMS | FB   |     200 | FAVENUE     | ELSA       | LEAKING PIPE | 20/01/2017  |
    +------+------+---------+-------------+------------+--------------+-------------+
    

    通常最好在WHERE子句中使用和/或而不是大小写表达式。请以文本格式提供表架构、测试数据和所需结果。关于如何提出好问题,请参考以下链接它们不是DUP-行是不同的。左侧部分有指向不同RMCostCenter的链接。这意味着您有多行具有相同的rmrplant和不同的成本中心。谁在增加你的行数-我不知道。RM_BusinessArea可能是。@Ivan Starostin我几乎可以肯定这里的问题表是RM_成本中心,因为相同的代码如“200”、“500”和“701”显示两次,只是它们有不同的描述和指向不同属性代码的链接,如“RWB”和“RWMS”,或“ADMC”到“EWB”.那你为什么要用非唯一的ccCostCenter而不是CCID(pk)加入?
    +------+------+---------+-------------+------------+--------------+-------------+
    | Code | Area | CCenter | DESCRIPTION | ReportedBy |   Remarks    | CreatedDate |
    +------+------+---------+-------------+------------+--------------+-------------+
    | RWB  | FB   |     200 | CTERRACE    | TANTAN     | NO CAKE      | 20/01/2017  |
    | RWB  | FB   |     200 | FAVENUE     | TANTAN     | NO CAKE      | 20/01/2017  |
    | RWMS | CS   |     501 | BACCARAT    | JIM        | SCRATCHED    | 20/01/2017  |
    | RWB  | ADMC |     700 | CAFETERIA   | JIM        | BROKEN TILES | 21/01/2017  |
    | RWB  | ADMC |     700 | HRESOURCE   | JIM        | BROKEN TILES | 21/01/2017  |
    | RWMS | FB   |     200 | CTERRACE    | ELSA       | LEAKING PIPE | 20/01/2017  |
    | RWMS | FB   |     200 | FAVENUE     | ELSA       | LEAKING PIPE | 20/01/2017  |
    +------+------+---------+-------------+------------+--------------+-------------+
    
    +------+------+---------+-------------+------------+--------------+-------------+
    | Code | Area | CCenter | DESCRIPTION | ReportedBy |   Remarks    | CreatedDate |
    +------+------+---------+-------------+------------+--------------+-------------+
    | RWB  | FB   |     200 | CTERRACE    | TANTAN     | NO CAKE      | 20/01/2017  |
    | RWMS | CS   |     501 | BACCARAT    | JIM        | SCRATCHED    | 20/01/2017  |
    | RWB  | ADMC |     700 | CAFETERIA   | JIM        | BROKEN TILES | 21/01/2017  |
    | RWMS | FB   |     200 | FAVENUE     | ELSA       | LEAKING PIPE | 20/01/2017  |
    +------+------+---------+-------------+------------+--------------+-------------+