SQL查询 如何做出这种效果

vovo2000 2008-06-10 09:04:05
把这种查询效果

商品号 商品名 尺码 价格
001 XX鞋 ss $1
s $1
M $1.1
L $1.1
LL $1.2
002 YY鞋 ss $1
s $1
M $1.1
L $1.1
LL $1.2
007 Y衬衫 SS $2
s $2
M $2.1
L $2.1
LL $2.5
011 商品1 $2
037 帽子2 $2
091 领带 $2
037 XX2 $2
099 XXX $2

-----------------------------
要变成这种效果
↓↓↓↓↓
---------------------------------

商品号 商品名 尺码 价格 商品号 商品名 尺码 价格
001 XX鞋 ss $1 007 Y衬衫 SS $2
s $1 s $2
M $1.1 M $2.1
L $1.1 L $2.1
LL $1.2 LL $2.5
002 YY鞋 ss $1 011 商品1 $2
s $1 037 帽子2 $2
M $1.1 091 领带 $2
L $1.1 037 XX2 $2
LL $1.2 099 XX2 $2


求教达人。
...全文
120 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
vovo2000 2008-06-10
  • 打赏
  • 举报
回复
谢谢大家。
我编辑好的格式,一发布就变的乱糟糟的,
辛苦大家的眼睛了。

谢谢Herb2
谢谢wh110
谢谢roy_88
谢谢CCTV
谢谢MTV
......

回复的真快,谢谢。

回roy_88
其实这个不是SQLServer的
是ACCESS的,
很小的一个系统,数据库不大,
用VBA作,
要求报表显示的样式是这样

如果不用查询作,
谁能够让报表显示成这样,
我另外给200分。
lff642 2008-06-10
  • 打赏
  • 举报
回复
好强.
中国风 2008-06-10
  • 打赏
  • 举报
回复
如果樓主貼出來的一個結果是表的結果集,那設計的數據庫真是有點差。。。

2000用臨時表,05用row_number+Ntile
wh110 2008-06-10
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 Herb2 的回复:]
增加分栏时,补充商品名的语句。


SQL code/******************************************************************************/
/*回复:20080610001总:00064 */
/*主题:数据显示 */
/*作者:二等草 */

[/Quote]
同意楼上的
Herb2 2008-06-10
  • 打赏
  • 举报
回复
增加分栏时,补充商品名的语句。

/******************************************************************************/
/*回复:20080610001总:00064 */
/*主题:数据显示 */
/*作者:二等草 */
/******************************************************************************/

set nocount on

--数据--------------------------------------------------------------------------

declare @sp table([商品号] varchar(10),[商品名] varchar(15),[尺码] varchar(8),[价格] varchar(6))
insert into @sp select '001','XX鞋','ss','$1'
insert into @sp select '','','s','$1'
insert into @sp select '','','M','$1.1'
insert into @sp select '','','L','$1.1'
insert into @sp select '','','LL','$1.2'
insert into @sp select '002','YY鞋','ss','$1'
insert into @sp select '','','s','$1'
insert into @sp select '','','M','$1.1'
insert into @sp select '','','L','$1.1'
insert into @sp select '','','LL','$1.2'
insert into @sp select '007','Y衬衫','SS','$2'
insert into @sp select '','','s','$2'
insert into @sp select '','','M','$2.1'
insert into @sp select '','','L','$2.1'
insert into @sp select '','','LL','$2.5'
insert into @sp select '011','商品1','','$2'
insert into @sp select '037','帽子2','','$2'
insert into @sp select '091','领带','','$2'
insert into @sp select '037','XX2','','$2'
insert into @sp select '099','XXX','','$2'
insert into @sp select '199','XX3','','$3'

--代码--------------------------------------------------------------------------
declare @t table(id int identity,bh varchar(10),mc varchar(20),cm varchar(8),jg varchar(8))
declare @i int
insert @t(bh,mc,cm,jg) select * from @sp
set @i = @@rowcount
update a set bh=b.bh,mc = b.mc from @t a,
(select bh,mc from @t where id = (select max(id) from @t where id<=(@i+1)/2 and bh<>'')) b
where a.id = (@i+1)/2+1 and a.bh=''
select a.bh 商品号,a.mc 商品名,a.cm 尺码,a.jg 价格,b.bh 商品号,b.mc 商品名,b.cm 尺码,b.jg 价格 from @t a left join @t b on a.id = b.id-(@i+1)/2
where a.id <=(@i+1)/2
go

/*结果--------------------------------------------------------------------------
品号 商品名 尺码 价格 商品号 商品名 尺码 价格
---------- -------------------- -------- -------- ---------- -------------------- -------- --------
001 XX鞋 ss $1 007 Y衬衫 s $2
s $1 M $2.1
M $1.1 L $2.1
L $1.1 LL $2.5
LL $1.2 011 商品1 $2
002 YY鞋 ss $1 037 帽子2 $2
s $1 091 领带 $2
M $1.1 037 XX2 $2
L $1.1 099 XXX $2
LL $1.2 199 XX3 $3
007 Y衬衫 SS $2 NULL NULL NULL NULL


--清除------------------------------------------------------------------------*/
Herb2 2008-06-10
  • 打赏
  • 举报
回复
 
/******************************************************************************/
/*回复:20080610001总:00064 */
/*主题:数据显示 */
/*作者:二等草 */
/******************************************************************************/

set nocount on

--数据--------------------------------------------------------------------------

declare @sp table([商品号] varchar(10),[商品名] varchar(15),[尺码] varchar(8),[价格] varchar(6))
insert into @sp select '001','XX鞋','ss','$1'
insert into @sp select '','','s','$1'
insert into @sp select '','','M','$1.1'
insert into @sp select '','','L','$1.1'
insert into @sp select '','','LL','$1.2'
insert into @sp select '002','YY鞋','ss','$1'
insert into @sp select '','','s','$1'
insert into @sp select '','','M','$1.1'
insert into @sp select '','','L','$1.1'
insert into @sp select '','','LL','$1.2'
insert into @sp select '007','Y衬衫','SS','$2'
insert into @sp select '','','s','$2'
insert into @sp select '','','M','$2.1'
insert into @sp select '','','L','$2.1'
insert into @sp select '','','LL','$2.5'
insert into @sp select '011','商品1','','$2'
insert into @sp select '037','帽子2','','$2'
insert into @sp select '091','领带','','$2'
insert into @sp select '037','XX2','','$2'
insert into @sp select '099','XXX','','$2'

--代码--------------------------------------------------------------------------
declare @t table(id int identity,bh varchar(10),mc varchar(20),cm varchar(8),jg varchar(8))
insert @t(bh,mc,cm,jg) select * from @sp
select a.bh 商品号,a.mc 商品名,a.cm 尺码,a.jg 价格,b.bh 商品号,b.mc 商品名,b.cm 尺码,b.jg 价格 from @t a left join @t b on a.id = b.id-(@@rowcount+1)/2
where a.id <=(@@rowcount+1)/2
go

/*结果--------------------------------------------------------------------------
商品号 商品名 尺码 价格 商品号 商品名 尺码 价格
---------- -------------------- -------- -------- ---------- -------------------- -------- --------
001 XX鞋 ss $1 007 Y衬衫 SS $2
s $1 s $2
M $1.1 M $2.1
L $1.1 L $2.1
LL $1.2 LL $2.5
002 YY鞋 ss $1 011 商品1 $2
s $1 037 帽子2 $2
M $1.1 091 领带 $2
L $1.1 037 XX2 $2
LL $1.2 099 XXX $2


--清除------------------------------------------------------------------------*/

34,575

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧