显示Oracle中另一列中的列总数

时间:2016-11-07 09:32:03

标签: oracle

我有一个查询,我将在其中动态输入值。 例如:如果我在文本框中输入两个值27/1, 151/3

查询变为

select area_guntha 
from xxcus.xxacl_pn_farming_mst 
where SURVEY_AREA_7_12 IN  ('27/1', '151/3')

173.316.7

的形式提供结果

屏幕截图位于

之下

IMG

我想添加这两个值并将其显示在另一列

更新

我的查询无法正确获取数据,

查询应该是这样的。

SELECT SUM (area_guntha) area_guntha
FROM xxcus.xxacl_pn_farming_mst
WHERE survey_area_7_12 IN ('27/1', '151/3', '87/4')

但是我无法在每个值之后添加' '  它就像这样来了

SELECT SUM (area_guntha) area_guntha
FROM xxcus.xxacl_pn_farming_mst
WHERE survey_area_7_12 IN ('27/1, 151/3, 87/4')

这是我的代码

string strVal = txt712.Text;

    OracleConnection conn = new OracleConnection(System.Configuration.ConfigurationManager.ConnectionStrings["OracleConn"].ToString());
    conn.Open();

    OracleCommand cmd = new OracleCommand("SELECT SUM (area_guntha)area_guntha FROM xxcus.xxacl_pn_farming_mst WHERE "+
                                          "survey_area_7_12 IN ('" + strVal + "')", conn);

    if(ddlTranType.SelectedItem.Text.ToString().Equals("--Select--"))
    {
        txttotalguntha.Value = "";
        return;
    }
    OracleDataReader dr = cmd.ExecuteReader();

    if(dr.HasRows)
    {
        dr.Read();
        txttotalguntha.Value = dr["area_guntha"].ToString();
    }
    dr.Close();
    conn.Close();

2 个答案:

答案 0 :(得分:1)

select 1, :var from dual where 1 = :var; 

给出另一列中的bind var值:

select area_guntha, replace(:bind,',',' ')
  from xxcus.xxacl_pn_farming_mst 
  where SURVEY_AREA_7_12 IN  (:bind)

或者我错过了,你只想要

select area_guntha, survey_area_7_12 
  from xxcus.xxacl_pn_farming_mst 
  where SURVEY_AREA_7_12 IN  (:bind)

答案 1 :(得分:0)

我不确定我是否理解了你的问题。根据我的理解,您可以使用以下查询来获取另一列中的两个值的总和

select area_guntha, SUM(area_guntha) OVER() AS sum_area_guntha
from xxcus.xxacl_pn_farming_mst 
where SURVEY_AREA_7_12 IN  ('27/1', '151/3')

这将为您输出

area_guntha      sum_area_guntha
173.3            190
 16.7            190

希望这是您的要求