我的查询中有两个计算字段:
change.setOnClickListener(new Button.OnClickListener() {
public void onClick(final View v) {
v.setBackgroundResource(R.drawable.button_orange);
Handler handle = new Handler(); // Probably shouldn't create one each time, but here is the idea
handle.postDelayed(new Runnable() {
@Override
public void run() {
v.setBackgroundResource(R.drawable.button_green);
}
}, 5000);
}
});
你知道,在某些条件下,第二个字段(TX_MNT_BRUT)必须等于第一个字段(TX_PRIX_CAD)。
这样做的问题是SQL告诉我TX_PRIX_CAD不是有效的列名,我猜是因为列名在表中不存在。
如何在不重复TX_MNT_BRUT中TX_PRIX_CAD的代码的情况下实现此目的?
感谢。
答案 0 :(得分:0)
您可能需要嵌套select语句,例如
SELECT <other_columns>, TX_PRIX_CAD,
CASE
WHEN T.TRANS_TYPE in ('ADD','DELIV') THEN
CASE
WHEN (SELECT currencyTitle FROM DBO.GetPrice(TRN.SEC_NO, TRN.TRADE_DATE)) = '' THEN TX_PRIX_CAD
END
END AS TX_MNT_BRUT
FROM (
SELECT
<other columns>,
CASE
WHEN TRN.TOTAL_VALUE_T = 0 THEN '00000000000'
ELSE
CASE
WHEN CC.PORT_CURRENCY1 = 'CAD' THEN RIGHT('00000000000' + REPLACE(LTRIM(STR(TRN.TOTAL_VALUE_T + TRN.TAXES, 11, 2)), '.', ''), 11)
WHEN CC.PORT_CURRENCY1 = 'USD' THEN RIGHT('00000000000' + REPLACE(LTRIM(STR((TRN.TOTAL_VALUE_T + TRN.TAXES) * DBO.fnGetExchangeRate(TRN.TRADE_DATE, 'USD', 'CAD'), 11, 2)), '.', ''), 11)
END
END
END AS TX_PRIX_CAD,
T.TRANS_TYPE
FROM <table_name>
)