交叉表问题....高手帮忙解决一下! HELP!HELP!HELP!HELP!HELP!HELP!HELP!

star1083 2007-08-11 05:09:44
HELP!HELP!HELP!

id 表示用户
visit 表示反问次数
goods 表示发生顺序
mame 表示发生 物品名称

id visit goods name
196 1 1 衣服
196 1 2 裤子
196 1 3 帽子
196 2 1 鞋
196 2 2 袜子
196 2 3 皮带
196 2 4 衣服
566 1 1 钢笔
566 2 1 啤酒
566 3 1 螺丝刀


变成下表

id visit goods1 goods2 goods3 goods4
196 1 衣服 裤子 帽子 NULL
196 2 鞋 袜子 皮带 衣服
566 1 钢笔 NULL NULL NULL
566 2 啤酒 NULL NULL NULL
566 3 螺丝刀 NULL NULL NULL


一般交叉表判断一个字段 group by 就可以了。但是这个表 要判断唯一性是通过两个字段。
另外 数据类型转换 也出现问题了。所以 跪球高手指教啊!!!
...全文
192 16 打赏 收藏 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
paoluo 2007-08-12
  • 打赏
  • 举报
回复
可以,加上As列名即可.
star1083 2007-08-11
  • 打赏
  • 举报
回复
是我自己的错。呵呵。不知道自动增加的 列 可以 给他命名么?

star1083 2007-08-11
  • 打赏
  • 举报
回复
不行出错了。。。报错是地一行的 1 ,,
但是不是哪个地方。。问题,我找不出来。。。一会慢慢看看。谢谢了哦
paoluo 2007-08-11
  • 打赏
  • 举报
回复
动态语句里,忘了转换类型了,修改为上面的代码.
paoluo 2007-08-11
  • 打赏
  • 举报
回复
--動態
declare @str varchar(1000)
set @str='select id,visit '
select @str=@str+',min(case when goods='''+ Cast(goods As Varchar) +''' then name else Null end) as goods'''+ Cast(goods As Varchar) +''''
from t group by goods
select @str=@str+' from t group by id,visit'
exec(@str)
star1083 2007-08-11
  • 打赏
  • 举报
回复
paoluo(一天到晚游泳的鱼)
虽然我没有写 动态的
我开始的时候用静态的写了一下。。也是遇到这个问题!
“varchar 值 cname else Null end) as '' 转换为数据类型为 int 的列时发生语法错误。”

googs 是INT 我把结构改成 VARCHAR 就可以了!!

谢谢 paoluo(一天到晚游泳的鱼) !和 fa_ge(鶴嘯九天)

谢谢你们了哦!
paoluo 2007-08-11
  • 打赏
  • 举报
回复
他開始的代碼有點筆誤,要用修正後的。
star1083 2007-08-11
  • 打赏
  • 举报
回复
我还不知道..我马上回家做一下.告诉你...fa_ge(鶴嘯九天) 现在下班了!
star1083 2007-08-11
  • 打赏
  • 举报
回复
重新发一下..刚刚的没有发清楚........

paoluo(一天到晚游泳的鱼) goods不是固定的哦....需要交叉查以后看谁 领的东西最多.

fa_ge(鶴嘯九天) 动态的还看不懂...呵呵!

谢谢楼上的兄弟了. 我看了.自己在试试....
paoluo 2007-08-11
  • 打赏
  • 举报
回复
star1083(),什麼意思?

代碼寫的有問題嗎?
paoluo 2007-08-11
  • 打赏
  • 举报
回复
或者

--動態
declare @str varchar(1000)
set @str='select id,visit '
select @str=@str+',min(case when goods='''+goods+''' then name else Null end) as '''+goods+''''
from t group by goods
select @str=@str+' from t group by id,visit'
exec(@str)
paoluo 2007-08-11
  • 打赏
  • 举报
回复
語句有兩處筆誤,幫你修改下。

--動態
declare @str varchar(1000)
set @str='select id,visit '
select @str=@str+',min(case when goods='''+goods+''' then name else '''' end) as '''+goods+''''
from t group by goods
select @str=@str+' from t group by id,visit'
exec(@str)
star1083 2007-08-11
  • 打赏
  • 举报
回复
id 表示用户
visit 表示反问次数
goods 表示发生顺序
mame 表示发生 物品名称

id visit goods name
196 1 1 衣服
196 1 2 裤子
196 1 3 帽子
196 2 1 鞋
196 2 2 袜子
196 2 3 皮带
196 2 4 衣服
566 1 1 钢笔
566 2 1 啤酒
566 3 1 螺丝刀


变成下表

id visit goods1 goods2 goods3 goods4
196 1 衣服 裤子 帽子 NULL
196 2 鞋 袜子 皮带 衣服
566 1 钢笔 NULL NULL NULL
566 2 啤酒 NULL NULL NULL
566 3 螺丝刀 NULL NULL NULL
fa_ge 2007-08-11
  • 打赏
  • 举报
回复
哈哈,我就喜歡寫靜態語句,格式漂亮

魚兄寫了,我就寫個動態的吧
fa_ge 2007-08-11
  • 打赏
  • 举报
回复

--動態
declare @str varchar(1000)
set @str='select id,visit '
select @str=@str+',min(case when goods='''+goods+''' then nane else '' end) as '''+goods+''''
from t group by goods
select @str=@str+' from t group by id,visit'
exec(@str)

paoluo 2007-08-11
  • 打赏
  • 举报
回复
--如果goods固定只有4個
Select
id,
visit,
Max(Case goods When 1 Then name Else Null End) As goods1,
Max(Case goods When 2 Then name Else Null End) As goods2,
Max(Case goods When 3 Then name Else Null End) As goods3,
Max(Case goods When 4 Then name Else Null End) As goods4
From
表
Group By
id,
visit
内容概要:本文围绕分布式电源接入对配电网的影响展开研究,利用Matlab进行仿真代码实现,系统探讨了风电、光伏等分布式电源接入后对配电网电压分布、潮流特性、电能质量和系统稳定性等方面的多维度影响。研究构建了典型的配电网模型,通过模拟不同渗透率与接入位置的运行场景,深入分析其引发的技术挑战,并提出了包括无功补偿、网络重构及储能协调控制在内的优化调控策略,以提升电网的接纳能力与运行可靠性。同时,结合智能优化算法(如粒子群、遗传算法等)开展多目标优化求解,兼顾经济性、低碳性与系统稳定性,形成一套完整的建模、仿真与优化技术体系。; 适合人群:具备电力系统基础知识,熟练掌握Matlab/Simulink仿真工具,从事新能源并网、配电网规划与运行、智能电网优化等相关领域的研究生、科研人员及工程技术人员。; 使用场景及目标:①掌握分布式电源接入对配电网影响的建模与仿真方法;②学习基于Matlab的配电网潮流计算、稳定性分析与优化调度实现技术;③应用于科研课题、学位论文或工程项目中关于新能源接入的系统评估、优化设计与决策支持;; 阅读建议:建议读者结合文中提供的Matlab代码实例,逐步复现仿真过程,重点关注模型构建、参数设置、约束条件处理与优化算法实现细节,同时参考相关文献深化对配电网运行机理与控制策略的理解,以实现理论与实践的深度融合。
很多怀旧爱好者、民俗查阅人群在查阅传统黄历时一直被纸质挂历的短板困扰,每年都需要购置新日历,存放占用空间,翻阅查找指定日期费时费力,普通电子日历大多样式单调,缺少传统黄历完整民俗信息。**电子手撕老黄历**就是针对这类需求打造的桌面万年历查阅工具,依托仿真纸质交互设计,完整复刻传统老黄历全套内容,无需年年更换,帮助用户沉浸式查阅历法民俗资料,兼顾情怀质感与查阅效率,零学习门槛,适配电脑桌面长期使用。 它的核心能力集中在**仿真纸张交互**与**万年历法检索**两大模块,搭配高清文档导出功能,每一项功能都围绕查阅留存需求设计。仿真纸张交互可以模拟真实挂历翻页、卷纸与手撕页面效果,纸张带有透视阴影,撕纸碎片动态飞出,还原手撕老黄历的怀旧手感。万年历法检索覆盖超大时间跨度,公历农历对照展示,完整收纳节气、宜忌、时辰吉凶、九星五行、冲煞方位等全套黄历信息;高清导出支持 300DPI 图片与多页 PDF 生成,方便资料保存与打印排版。 这款软件可以适配多种个人查阅与素材制作场景。民俗文化爱好者可以随时查询任意年代的历法信息,快速查看每日宜忌、胎神方位、潮汐时间与当日主题对联,用于传统文化内容研读。内容创作者可以借助导出功能,将黄历页面生成为高清图片或 PDF 文档,直接用于图文素材制作。日常居家用户放置在电脑桌面,随时查看节气节日,周末自动切换红色主题,工作日使用青绿纸本样式,区分阅读视觉,满足日常日期查看、民俗参考的轻量需求。

22,298

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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