如何从SQL Server中的已分级数据检索数字?
叫我的表中的SQL“temp_table”,我想进行交易不到哪column_3是“现金AED”如何从SQL Server中的已分级数据检索数字?
当前数据的数据:
Transaction No Column_1 Column_2 Column_3 Price
1234 NULL NULL NULL 0
1234 0 NULL NULL 0
1234 NULL 0 NULL 0
1234 NULL NULL Cash AED 0
1234 NULL NULL NULL 0
1234 NULL NULL NULL 15
1234 NULL NULL NULL 0
1234 NULL NULL Cash AED 0
1234 NULL NULL NULL 0
1234 NULL NULL NULL 0
1234 NULL NULL NULL 0
1222 NULL NULL NULL 0
1222 0 NULL NULL 0
1222 NULL 0 NULL 0
1222 NULL NULL Cash AED 0
1222 NULL NULL NULL 0
1222 NULL NULL NULL 25
1222 NULL NULL NULL 0
1222 NULL NULL Cash AED 0
1222 NULL NULL NULL 0
1222 NULL NULL NULL 0
1222 NULL NULL NULL 0
所需的输出:
Transaction No Column_3 Price
1234 Cash AED 15
1222 Cash AED 25
记住同一个交易,在column_3中重复“Cash AED”的值。
嗯。 。 。
select distinct transaction_no, column_3
from t
where column_3 = 'Cash AED';
这真的是你想要的吗?
编辑:
随着price
,你可以使用聚合:
select transaction_no, column_3, max(price) as price
from t
where column_3 = 'Cash AED'
group by transaction_no, column_3;
本工程为您所提供的数据。
删除';'末尾 –
@KobyDouek。 。 。为什么?使用分号作为语句终止符是最佳实践。 –
@Gordon Linoff,对不起,由于某种原因价格栏没有出现在我的问题中,我现在编辑了 – 3MRAN
使用DISTINCT SELECT子句:
SELECT DISTINCT TransactionNo , Column_3
FROM yourtableName
WHERE Column_3 = 'Cash AED'
抱歉,由于某种原因价格栏没有出现在我的问题中,我现在编辑了 – 3MRAN
的描述并不完全清楚,但是,这将给所需的输出:
SELECT [Transaction No], MAX(Column_3) AS Column_3, MAX(Price) AS Price
FROM temp_table GROUP BY [Transaction No] ORDER BY [Transaction No]
我在她应该返回自己想要的答案,但一对逻辑的更多解释会有所帮助。 – SAS