2016-11-07 4 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.3 и 16.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; 

дает значение привязки вар в другой колонке:

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 

Надежда это ваше требование

Смежные вопросы