2013-05-22 40 views
0

我有我在PowerShell中运行以下查询:如何设置多个列的PowerShell变量在SQL查询

$Query = "SELECT 
      t1.BSM_NM 
      ,t1.D_DTM AS MAXDATETIME 
      ,CASE 
       WHEN SUM(t1.V_CUST_BLK_CNT)/SUM(t1.V_ATT_CNT) >= MAX(t2.MAJOR_VOICE_BLOCK) AND SUM(t1.V_CUST_BLK_CNT)/SUM(t1.V_ATT_CNT) < MAX(t2.CRITICAL_VOICE_BLOCK) 
        OR 
        SUM(t1.V_DRP_CALL_CNT)/SUM(t1.V_ATT_CNT) >= MAX(t2.MAJOR_VOICE_DROP) AND SUM(t1.V_DRP_CALL_CNT)/SUM(t1.V_ATT_CNT) < MAX(t2.CRITICAL_VOICE_DROP) 
        OR 
        SUM(t1.V_AXS_F_CNT)/SUM(t1.V_ATT_CNT) >= MAX(t2.MAJOR_VOICE_AXSFAIL) AND SUM(t1.V_AXS_F_CNT)/SUM(t1.V_ATT_CNT) < MAX(t2.CRITICAL_VOICE_AXSFAIL) 
       THEN 1 
       WHEN SUM(t1.V_CUST_BLK_CNT)/SUM(t1.V_ATT_CNT) >= MAX(t2.CRITICAL_VOICE_BLOCK) 
        OR 
        SUM(t1.V_DRP_CALL_CNT)/SUM(t1.V_ATT_CNT) >= MAX(t2.CRITICAL_VOICE_DROP) 
        OR 
        SUM(t1.V_AXS_F_CNT)/SUM(t1.V_ATT_CNT) >= MAX(t2.CRITICAL_VOICE_AXSFAIL) 
       THEN 2 
       ELSE 0 
      END MAJORCRITICAL 
      FROM DMSN.DS3R_FH_1XRTT_BTS_LVL_KPI t1 
      INNER JOIN 
      ZDMSN.DS3R_1XRTT_TRIGGERS_THRESHOLD t2 
      ON 
      t1.BSM_NM = t2.BSC_NM 
      WHERE t1.BSM_NM = 'ARL1' and t1.D_DTM = (SELECT MAX(D_DTM) FROM DS3R_FH_1XRTT_BTS_LVL_KPI WHERE BSM_NM = 'ARL1') 
      GROUP BY 
      t1.BSM_NM, t1.D_DTM"  

$data_set = new-object system.data.dataset 
$adapter = new-object system.data.oracleclient.oracledataadapter ($Query, $Connection) 
[void] $adapter.Fill($data_set) 
$table = new-object system.data.datatable 
$table = $data_set.Tables[0] 

但我怎么设置BSM_NM,MAXDATETIME和MAJORCRITICAL在PowerShell中的变量。我想最终在电子邮件的脚本中使用它们。

+0

目前尚不清楚你需要做什么。你想用他们的价值取代BSM_NM等? – ravikanth

+0

否,查询返回一行数据。我想为BSM_NM,MAXDATETIME和MAJORCRITICAL中的值设置变量 – user2061886

+0

我希望你能得到下面的答案! – ravikanth

回答

2

对于1行试试这个

$bsmNM = $data_set.Tables[0].Rows[0].BSM_NM 
$maxDT = $data_set.Tables[0].Rows[0].MAXDATETIME 
$majorC = $data_set.Tables[0].Rows[0].MAJORCRITICAL