1樓:匿名使用者
declare @sql varchar(8000)select @sql = isnull(@sql + '],[' , '') + 費用 from a group by 費用
set @sql = '[' + @sql + ']'
exec ('select * from (select * from a) a pivot (max(金額) for 費用 in (' + @sql + ')) b')
2樓:匿名使用者
-- 較長,湊合用吧,表名test, 三個字段分別設為yf,fy,je
select
yf,max(case when fy in ('診療費','注射費') then fy else null end),
max(case when fy in ('診療費','注射費') then je else null end),
max(case when fy in ('**費','其他費') then fy else null end),
max(case when fy in ('**費','其他費') then je else null end)
from (select
t.*,
case
when fy in ('診療費','**費') then 1
when fy in ('注射費','其他費') then 2
end grp
from (select yf,fy,je from test where fy in ('診療費','**費','注射費')
union all
select yf,'其他費' fy,sum(je)je from test
where fy not in ('診療費','**費','注射費')
group by yf) t) t1
group by yf,grp
-- 下面這個語句僅供參考,為其他費用不需彙總時提供乙個思路
select
yf,max(case when id%2 <> 0 then fy else null end),
max(case when id%2 <> 0 then je else null end),
max(case when id%2 = 0 then fy else null end),
max(case when id%2 = 0 then je else null end)
from
(select
t1.*,
case when id % 2 = 0 then id - 1 else id end grp
from (select
t.*,row_number()over(order by yf) id
from test t) t1) t2
group by yf,grp
3樓:
通過記錄行迴圈或cusor進行處理,插入新的表變數或臨時表中,表的結構為想要的結果,然後顯示出來就行了。
4樓:匿名使用者
你可以把這個表關聯兩次,取別名a、b。然後第一列單費用取a表中單,後邊的費用取b表的。
5樓:魂羽
你這就沒有唯一號嗎?沒有規律可尋啊,你需要把所有規律都寫出來 然後套用case when語句
大概是這樣的 case when (月份=『09』and 費用=『診療費』 then 月份,費用1,金額,費用2,金額2 when 月份.....)
像這樣如此往復
6樓:雲天英雄
這個用前端設計;用單純的查詢輸出這樣的結果,比較複雜,也犧牲效能~
求sql高手----將一條記錄中的某個字段拆分,多行顯示 10
7樓:匿名使用者
4行變成1行?如果用sqlserver的話,可以用一種很詭異的方法:selectdistinct','+sale_itemfromsale_reportforxmlpath('')樓主可以測試一下,最後用乙個forxmlpath('')就好。
我上面的sql執行結果為:,c,a,b
8樓:冰痕
樓主是怎麼做到的,我現在也遇到類似的問題了!
sql server語句 單行數字資料拆分成多行
9樓:匿名使用者
create table t
(roomid varchar(10),
bednum int
)insert into t values('1000', 2)
insert into t values('1011', 1)
insert into t values('1012', 2)
insert into t values('1013', 4)
--如果bednum小於等於2047
select t.*,number from t cross join master.dbo.spt_values b
where type='p' and number<=bednum and number>0
--如果bednum小於等於32767
with ctas(
select roomid,bednum,1 as number from t
union all
select roomid,bednum,number+1 from ct where number
sql server 如何把1列多行資料 合併成一列顯示,具體格式如下:
10樓:匿名使用者
修改bai前:1列du多行資料
修改後:zhi合併成一列示例語句select
類別dao
專,名稱 = (
stuff(
(select ',' + 名稱 from table_a where 類別 = a.類別 for xml path('')),
1,1,'')
)from table_a as a group by 類別把得到的內容以xml的形式顯示屬
for xml path('')
把拼接的內容的第乙個「,」去掉
stuff((select ',' + ep_name from ep_detail where ep_classes = a.ep_classes for xml path('')), 1, 1, '')
11樓:匿名使用者
select stuff((select ','+title from tb for xml path('')),1,1,'')
sql server 如何把1列多行資料 合併成一列顯示?
sqlserver用sql語句查詢結果插入到新的資料庫中
可以這樣子寫 先寫乙個自定義函式 create function cre funcation a int returns varchar 2000 as begin declare str varchar 2000 set str select str str rtrim a.b from test...
SQL Server建立檢視時SQL語句怎麼寫
歐力士中國 1.2種寫法都可以 2.3個表的話,可以寫成from 學生資訊 a 學生資訊 b,輔導員資訊 c where a.所屬班級 b.班級編號 and c.輔導員編號 b.輔導員 jg 陳 2種寫法有區別 上面的相當於inner join 三個表可以寫在from後面,同樣的效果也是inner ...
SQL語句在SQL Server中建立表時如何引用其他表的字段來進行計算
4終 1 登陸sql server。2 單擊資料庫,選擇要在哪個資料庫建立表。3 新建查詢按鈕,進入編輯介面。4 以建立學生表為例。5 將建立好的表儲存,就完成了。注意事項 表之間的列要用英文的 逗號 隔開,表的sql語句不區分大小寫,sql語句只能在整個編輯結束時才能用分號,也可以不用分號。 ba...