我需要一個查詢,這些三個不同的數據庫服務器上沒有任何更改:MySQL,MSSQL,PostgreSQL。 在這個查詢我必須以計算下面的表達式上的MySQL正常工作的列:指望DISTINCT的幾個字段只能在MySQL上工作嗎?
field_char = character
field_int = integer
field_date = datetime
表達是內部的:
COUNT(DISTINCT field_char,field_int,field_date) AS costumernum
中相應的不同是不同的類型的字段父查詢選擇,所以如果我試圖實現與子查詢方法的結果,我在這種情況下跌倒:
SELECT t0.description,t0.depnum
(select count(*) from (
select distinct f1, f2, f3 from salestable t1
where t1.depnum = t0.depnum
) a) AS numitems
FROM salestable t0
我得到一個錯誤與此QUER Ÿ,我如何獲得父查詢的值?
表達式在MySQL上正常工作,但當我嘗試在Sql Server或PostgreSQL上執行它時出現錯誤(問題在於count函數不接受MSSQL/PostgreSQL上不同類型的3個參數),是有一種方法可以在每個數據庫服務器(SQL Server,MySQL,PostgreSQL)中使用一個表達式來實現相同的結果嗎?
我已經嘗試過使用這種方法,唯一的問題是我必須使用必須從父查詢中獲取的值來過濾子查詢,請參閱以下文章:http://stackoverflow.com/questions/ 7088107 /如何獲取嵌套子查詢識別父母查詢列 – aleroot
我看到,編輯帖子以解決其他需求。 –
看起來它可行,但在MySQL上非常慢,我不知道爲什麼,在其他數據庫服務器上工作得相當快......你知道一個解決方案嗎? – aleroot