sql查詢行轉列

2022-03-18 22:35:49 字數 1103 閱讀 8093

昨天下午碰到乙個需求,乙個大約30萬行的表,其中有很多重複行,在這些行中某些字段值是不重複的。

比如有id,name,contract_id,sales,product等,除了product欄位,其餘欄位均是一樣的,需要去重並合併product欄位。

下午頭腦發昏,直接寫了個o(nm)的vba**,從16:00開始跑,放到另一台空機器上開始跑,下班的時候看了一下跑了不到1/20,感覺時間浪費在io上了,當然演算法也有很大優化空間,比如排序後再合併。

回來想了想何不直接匯入資料庫操作,最簡單的用access+vba就行啊。

public function combstr(tablename as string, fieldname as string, groupfield as string, groupvalue as string) as string

' msgbox "in module"

dim resultstr as string

dim rs as recordset

set rs = currentdb.openrecordset("select " & fieldname & " from " & tablename & " where " & groupfield & "='" & groupvalue & "'")

if rs.recordcount > 0 then

do while not rs.eof

if instr(resultstr, rs.fields(0).value) = 0 then resultstr = resultstr & "," & rs.fields(0).value

rs.movenext

loop

end if

if resultstr <> "" then resultstr = mid(resultstr, 2)

combstr = resultstr

end function

select idcombstr("contract","product","id",id) as productsum

from contract

group by id;

極速搞定之

mysql 查詢行轉列 SQL語句實現行轉列查詢

表sales 查詢結果如下 1 建表 create table dbo sales id int identity 1,1 not null,year int null,jidu int null,jine int null,primary key clustered id asc with pad...

SQL 行轉列查詢的簡易實現

開發中難免遇到一些非常靈活的設計,比如對sql的行轉列進行業務資料展現的.最近在做系統設計的時候設計了乙個公共物件的擴充套件表,然後需要實現不同業務物件的組合查詢,因此借鑑了以前經典的學生科目成績行轉列的案例 在此自己做了修正,以供分享.先曬圖說效果 1 表的原始資料 2 轉換後的資料 ok 下面具...

sql語句中的 行轉列 查詢

有時候多行資料需要一行顯示,這就需要行轉列的sql啦.首先 要知道 行轉列當然是要以某個字段進行分組的,然後再根據表中 乙個欄位的值做轉列後的欄位名,這個值所對應的另乙個字段作為 值 示例 表名 xx班 班級 學生身高一班甲 161一班 乙162一班丙 163一班 丁164一班戊 165假如 要將上...