SqlServer經典行轉列 討論

2022-02-14 11:22:29 字數 2720 閱讀 1010

use

cubedemo;

goset

nocount

on/*

銷售模組

*/if

object_id(n'

businesscommon_salemodule',n

'u')

isnot

null

drop

table

businesscommon_salemodule

gocreate

table

businesscommon_salemodule

(bcid

intidentity(1

,1) primary

keynot

null

,shopid

varchar(20

) null

, --

-門店id

shopname

nvarchar(50

) null

, --

-門店名稱

salecarcount

intnull

, --

銷售量bcdate

datetime

null

--生成日期

) go

insert

into

businesscommon_salemodule

select

'md001',

'廣豐店',

80,'2010-4-10

'union

allselect

'md001',

'廣豐店',

20,'2010-5-25

'union

allselect

'md001',

'廣豐店',

55,'2011-5-1

'union

allselect

'md001',

'廣豐店',

48,'2011-5-11

'union

allselect

'md001',

'廣豐店',

80,'2011-3-18

'union

allselect

'md001',

'廣豐店',

10,'2011-3-12

'union

allselect

'md001',

'廣豐店',

40,'2011-3-25

'union

allselect

'md002',

'現代店',

50,'2011-3-27

'union

allselect

'md002',

'現代店',

40,'2011-5-15

'union

allselect

'md002',

'現代店',

80,'2010-4-18

'union

allselect

'md002',

'現代店',

40,'2010-4-13

'union

allselect

'md004',

'海馬店',

70,'2011-3-15

'union

allselect

'md005',

'一豐店',

80,'2010-4-10

'union

allselect

'md005',

'一豐店',

80,'2011-3-10

'union

allselect

'md005',

'一豐店',

80,'2011-5-22

'union

allselect

'md003',

'寶馬店',

20,'2011-4-10

'union

allselect

'md003',

'寶馬店',

80,'2010-8-10'go

select

*from

businesscommon_salemodule;

/*如何根據條件 日 2011-4-18 動態查詢到

2023年4月(從2023年4月1日到2023年4月18日的資料) 2023年1月(從2023年1月1日到2023年1月18日的資料)

2023年2月(從2023年2月1日到2023年2月18日的資料) 2023年3月(從2023年3月1日到2023年3月18日的資料)

2023年4月(從2023年4月1日到2023年4月18日的資料) 2023年累計(從2023年1月1日到2023年4月18日的資料)

2023年累計(從2023年1月1日到2023年4月18日的資料)

這些資料

*//*

要得到的結果如下:

門店名稱 2023年4月 2023年1月 2023年2月 2023年3月 2023年4月 2023年累計 2023年累計

廣豐店 80 0 0 90 0 130 80

現代店 120 0 0 0 0 50 120

寶馬店 0 0 0 0 20 20 0

海馬店 0 0 0 70 0 70 0

一豐店 80 0 0 80 0 80 80

*/

SQL server 行轉列 列轉行

1.簡單案例 create table student sid int primary key identity 1,1 主鍵自增 sname varchar 20 學生姓名 select from student create table class cid int primary key ide...

SQL SERVER 行轉列 列轉行

第一步 建立臨時表結構 create table student 建立臨時表 stuname nvarchar 20 學生名稱 stusubject nvarchar 20 考試科目 stuscore int 考試成績 drop table student 刪除臨時表 select from stu...

經典SQL問題 行轉列《轉》

20人收藏此文章,我要收藏 贊0 學校裡面記錄成績,每個人的選課不一樣,而且以後會新增課程,所以不需要把所有課程當作列。資料庫grade裡面資料如下圖,假定每個人姓名都不一樣,作為主鍵。本文以mysql為基礎,其他資料庫會有些許語法不同。資料庫資料 處理後效果 下面介紹三種方法 方法一 1 2345...