2016-11-07 34 views
-1

我有一个查询,我将在其中动态输入值。例如:如果我在文本框中输入了两个值27/1, 151/3显示Oracle中另一列中的列总数

查询变得是

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

这给我造成的173.316.7

截图低于

IMG

我想补充这两个值并显示它在另一列

UPDATE

我的查询没有被正确读取数据,

查询应该是这样的。

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(); 
+0

怎么样你是否在增加价值?你有一个过程,用一些编程语言来调用语句?有绑定变量? – Kacper

+0

@Kacper:是的值是动态输入的。有时它可能是2,3或任何东西..是的,我有一个绑定变量 – BNN

回答

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

给绑定的VAR值在另一列如此:

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

或者我missunderstood只是想和你

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

我想要的是,''''插入每个值后,我不明白你的查询。那我该如何补充呢? – BNN

+0

'replace(:bind,',',',')'? @nad – Kacper

+0

是你的答案更新了一个,所以我应该尝试和检查? – BNN

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 

希望这是你的要求

相关问题