当前位置: 代码迷 >> Sql Server >> 请教一下怎么排列组合式的分类查询显示
  详细解决方案

请教一下怎么排列组合式的分类查询显示

热度:12   发布时间:2016-04-24 09:23:54.0
请问一下如何排列组合式的分类查询显示?
本帖最后由 comcyd 于 2015-02-04 16:52:19 编辑

哎,积分剩下最后点了,好寒酸,有多的会以后给大空补上


有如下情况,有一张玻璃订单表GlassA,分颜色,厚度,平弯三大属性:
G01(唯一条码)   G02(规格)    G03(颜色)   G04(厚度)   G05(平弯)
--------------------------------------------------------------
8001            100*200*8    白色        8mm         w
8002            200*300*10   灰色        10mm        P
8003            120*200*8    蓝色        8mm         w
8004            200*400*6    白色        6mm         P
8005            190*600*8    白色        8mm         P
8006            300*500*8    白色        8mm         P
8007            300*500*10   灰色        10mm        P
8008            300*500*8    白色        8mm         P
8009            160*450*8    白色        6mm         P
...

求解:想把这张订单里的玻璃按【颜色,厚度,平弯】优先级顺序三大属性分开提取显示出来,
【颜色】排完后再按【厚度】,厚度排完后再按【平弯】
订单类似于排列组合,把相同或者相近的尽量排在一起,比如上表中应该得到如下三个查询结果集:
数据集1:
8001            100*200*8    白色        8mm         w
8005            190*600*8    白色        8mm         P
8006            300*500*8    白色        8mm         P
8008            300*500*8    白色        8mm         P
8004            200*400*6    白色        6mm         P
8009            160*450*8    白色        6mm         P

数据集2:
8002            200*300*10   灰色        10mm        P
8007            300*500*10   灰色        10mm        P

数据集3:
8003            120*200*8    蓝色        8mm         w


------解决思路----------------------
SELECT * FROM TB
ORDER BY G03,G04,G01

------解决思路----------------------
--参考下:

 select G01 唯一条码,G02 规格,G03 颜色,G04 厚度,G05 平弯  from GlassA
where G03='白色'  --分别换成'灰色'和蓝色即可
order by G03,G04,G05

------解决思路----------------------

--试试
              select * into tb1 from  --tb1分别换成tb2,tb3
(select top 6 G01 唯一条码,G02 规格,G03 颜色,G04 厚度,G05 平弯  from GlassA
where G03='白色'  --分别换成'灰色','蓝色'即可
order by G03,G04,G05)t
  相关解决方案