【问题标题】:How to create a stored procedure with a combination of 3 columns as the parameter?如何创建以 3 列组合为参数的存储过程?
【发布时间】:2013-08-19 14:07:11
【问题描述】:

我需要基于 3 列创建报告 - 从报告到存储过程的参数将是 3 列的组合。

例如有一个带有列的表:

patientname, patient_no, hospital_no, doctor_code, service_used 

报告将有 1 个参数作为输入,例如 hospital_nodoctor_codeservice_used

(表中 3 列的组合)并且所有具有该组合的患者都必须返回?这是怎么做到的?

我还没有创建报告,所以如果我必须在参数中设置默认值,例如

hospital_no|doctor_code|service_used 

一切皆有可能。但我不知道该怎么做。请帮忙!!!

桌子就像

patientname    patient_no    hospital_no   doctor_code    service_used
----------------------------------------------------------------------    
name1            1252           hosp1          doc12            OT_1
name2            2533           hosp2          doc12            IP_1
NAME3             1212          HOSP6          doc2             OP_1
name4             1111          HOSP6          doc2             OP_1
name5             2222          HOSP6          doc2             OP_1

报告将有一个类似HOSP6doc2OP_1 的参数,它必须传递给存储过程(3 列的组合-hospital_no doctor_code service_used) 并且输出应该是,(它应该根据 3 列提取值)

name4             1111             HOSP6          doc2             OP_1
name5             2222             HOSP6          doc2             OP_1
NAME3             1212             HOSP6          doc2             OP_1

这 3 个参数就像一个下拉菜单,这些参数的组合硬编码在水晶报表中。对于本报告,实际需要 4 种组合。所以这些将作为报告的 4 个参数(不同的组合)。另外,是的,我知道我可以在报告中使用 3 个单独的参数,但是......企业主想要这样的报告,所以我对此束手无策.

【问题讨论】:

  • 请提供一些示例输入以及您想用它做什么。您的连续段落并不能解决您的问题。
  • 这是一个非常糟糕的设计 - 如果你有 三个参数 - 你为什么不只是传递 三个参数?!?!?这将使您的生活变得更加轻松!停止摆弄组合然后解析多个参数 - 如果您需要三个参数,请使用三个单独的参数!
  • 嗯,要求是这样的,我只是程序员。我问,但是企业主想要这样。我对此无能为力。这 3 个参数就像一个下拉菜单,其中包含硬编码在水晶报告中的参数组合。对于本报告,实际需要 4 种组合。所以这些将作为报告的 4 个参数(不同的组合)

标签: sql stored-procedures parameters combinations


【解决方案1】:

如果您知道 4 个参数 将被硬编码的顺序,那么您可以在 where 中使用串联版本,即:

SELECT * FROM Table WHERE Name+Surname+Number+Age = @ReportParam

【讨论】:

  • 谢谢你..啊..为什么我没有想到这个..大声笑..我在想一些函数来解析参数..大声笑。非常感谢你!
  • 不用担心。 . .没有什么比一双新眼睛更能解决问题
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-07-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-09-30
相关资源
最近更新 更多