2017-04-24 127 views
-1
下面

叫我的表中的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”的值。

+0

我在她应该返回自己想要的答案,但一对逻辑的更多解释会有所帮助。 – SAS

回答

2

嗯。 。 。

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; 

本工程为您所提供的数据。

+0

删除';'末尾 –

+4

@KobyDouek。 。 。为什么?使用分号作为语句终止符是最佳实践。 –

+0

@Gordon Linoff,对不起,由于某种原因价格栏没有出现在我的问题中,我现在编辑了 – 3MRAN

1

使用DISTINCT SELECT子句:

SELECT DISTINCT TransactionNo , Column_3 
    FROM yourtableName 
    WHERE Column_3 = 'Cash AED' 
+0

抱歉,由于某种原因价格栏没有出现在我的问题中,我现在编辑了 – 3MRAN

1

的描述并不完全清楚,但是,这将给所需的输出:

SELECT [Transaction No], MAX(Column_3) AS Column_3, MAX(Price) AS Price 
FROM temp_table GROUP BY [Transaction No] ORDER BY [Transaction No] 
相关问题