导航
  • 主页
  • 基础类
  • 应用实例
  • 新技术前沿

请大家帮忙在进销存中SQL语句的问题

landa888 2003-01-15 12:37:49
如下表:
表1:Feng
FengId FengH FengQ
A12345 44.55 55.66
B12345 22.11 11.00

表2:Zhi
zhiId xu zhiH zhiQ
A12345 工序1 12.23 21.33
A12345 工序2 11.33 23.33
A12345 工序3 33.44 33.45
B12345 式1 22.00 33.00
B12345 式2 3.00 34.00


我用如下语句
SELECT FengId AS 批号, FengH AS 已缝, FengQ AS 未缝,
xu AS 工序,zhiH AS 已织, zhiQ AS 未织
FROM Feng INNER JOIN
zhi ON FengId = zhiId
得出这样的结果
批号 批号 未缝 工序 已织 未织
A12345 44.55 55.66 工序1 12.23 21.33
A12345 44.55 55.66 工序2 11.33 23.33
A12345 44.55 55.66 工序3 33.44 33.45
B12345 22.11 11.00 式1 22.00 33.00
B12345 22.11 11.00 式2 3.00 34.00

这样是对的,可我想不要重复的,我想要的是这样的:
批号 批号 未缝 工序 已织 未织
A12345 44.55 55.66 工序1 12.23 21.33
工序2 11.33 23.33
工序3 33.44 33.45
B12345 22.11 11.00 式1 22.00 33.00
式2 3.00 34.00

请大家帮忙,谢谢大家!
...全文
3 点赞 收藏 4
写回复
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
chengxurensheng 2003-01-15
在SQL 中你不可能得到你想要的结果。你先好好看以下关系数据库的概念。不过你可以在程序中解决。在VB、PB等语言中有一个控件TREEVIEW可以得到你想要的结果。
回复
hjhing 2003-01-15
理論上你應該在界面層處理的
回复
nielisheng 2003-01-15
可能要数据类型转换,如int 等

回复
nielisheng 2003-01-15
1:
SELECT IDENTITY(int,1,1) AS num,
FengId AS 批号,
FengH AS 已缝,
FengQ AS 未缝,
xu AS 工序,
zhiH AS 已织,
zhiQ AS 未织
INTO #Tmp
FROM Feng INNER JOIN
zhi ON FengId = zhiId


2:

SELECT '批号'=(case when A.批号 = B.批号 then ' ' else A.批号 end),
'未缝'=(case when A.未缝 = B.未缝 then ' ' else A.未缝 end),
工序, 已织, 未织
FROM #Tmp A, #Tmp B
WHERE A.num = B.num - 1

3:如不符考虑排序问题,何以两个'批号'
回复
发动态
发帖子
MS-SQL Server
创建于2007-09-28

3.2w+

社区成员

MS-SQL Server相关内容讨论专区
申请成为版主
社区公告
暂无公告