2011-08-08 123 views
13

我希望通過在內部查詢 選擇這些提示錯誤修改數據並計算其中的一個修改.. ..選擇從嵌套查詢T-SQL

select count(cvs) from 
(
    select 
    cvs, 
    (case Citycode when 123 then 'test' else 'other' end) as CityName , 
    (case ProductCode when '000' then 'test3' when 'ss' then 'xtr' else 'ddd' end) as CardName 
    from Applications 
) 
+2

什麼錯誤? – JNK

+1

如果你只關心計數,你爲什麼選擇所有其他數據?您不是分組或彙總任何子查詢數據,那麼爲什麼不選擇沒有子查詢的計數呢? –

+4

也許你錯過的只是一個別名。 '選擇計數(*)從(...)A' – YetAnotherUser

回答

45

你需要給一個別名子查詢:

select count(x.cvs) from 
(
    select 
    cvs, 
    (case Citycode when 123 then 'test' else 'other' end) as CityName , 
    (case ProductCode when '000' then 'test3' when 'ss' then 'xtr' else 'ddd' end) as CardName 
    from Applications 
) x 
+0

這就是我尋找=))thanx Dalen !!!我知道如何計數,但我的情況是不同的..我想他得到我在找什麼... – zapoo

+0

很高興它幫助,下次再解釋一下你要找的東西,這樣你就可以避免所有那些downvotes – Dalen

0

看來你的查詢可以簡化爲..

SELECT COUNT(cvs) FROM Applications 

是否有您選擇嵌套的原因,並且您忽略了被選中的其他列?

+0

thx Quintin,但我的情況是通過使用別名的子查詢 – zapoo

1

爲什麼不只是這樣做呢?

SELECT COUNT(cvs) 
    FROM Applications 
+1

我猜*(希望)*他有更多的邏輯,他沒有包括 – JNK

+0

thx喬,但我的情況是通過使用別名的子查詢 – zapoo

0

兩件事情我看到了蝙蝠:

1 - 你並不需要爲你的例子在做什麼嵌套子查詢。你可以很輕鬆地做到:

SELECT COUNT(cvs) FROM application

2 - 您需要爲子查詢的別名,像(<subquery>) as SubQ

+0

thx JNK別名子查詢是我正在尋找。 – zapoo