表的设计问题[200分]

Sundery 2004-12-21 09:32:11
Excel的表格,大概是这样子的:

货物1 货物2 货物3
日期 | 编号 | 流向 | 数量 重量 | 数量 重量 | 数量 重量
1/1 0001 香港 | 3 3.6 | 5 3.6 |
1/5 0002 日本 | | 2 2 | 5 9
2/3 0095 重庆 | | | 6 8
2/5 0111 北京 | 2 2 | |


怎么转换成数据库的表?问题是:货物不是固定的,可能会增加
表的设计关系到最后报表的生成


做了一个Table,但是觉得不是很符合要求:


CREATE TABLE sampleTable
(
lantaiID int IDENTITY (1,1) primary key,
OperateDate datetime not null,
OperateCode int,
WorkFlow nvarchar (30) not null,
CargoName nvarchar(10) not null,
Quantity int,
Weight float
)
--SELECT * FROM sampleTable
--DROP TABLE sampleTable
--DELETE FROM sampleTable


不知道大家有什么好的建议吗?
...全文
130 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
zjcxc 元老 2004-12-22
  • 打赏
  • 举报
回复
--如果仅仅在数据库中处理

--用楼主自己的建表
CREATE TABLE sampleTable
(
lantaiID int IDENTITY (1,1) primary key,
OperateDate datetime not null,
OperateCode int,
WorkFlow nvarchar (30) not null,
CargoName nvarchar(10) not null,
Quantity int,
Weight float
)

go

--查询用下面的存储过程
create proc p_qry
as
set nocount on
declare @s nvarchar(4000)
set @s=''
select @s=@s+',['+rtrim(CargoName)
+'_数量]=sum(case CargoName when '''+rtrim(CargoName)
+''' then Quantity else 0 end),['+rtrim(CargoName)
+'_重量]=sum(case CargoName when '''+rtrim(CargoName)
+''' then Weight else 0 end)'
from sampleTable group by CargoName
exec('select OperateDate,OperateCode,WorkFlow'+@s+'
from sampleTable
group by OperateDate,OperateCode,WorkFlow')
go
Sundery 2004-12-22
  • 打赏
  • 举报
回复
谢谢邹建,这个问题解决了
guanshiyu123 2004-12-21
  • 打赏
  • 举报
回复
如果实际操作项多的话,做成主表和从表也可以,字段少做一个表就可以了
guanshiyu123 2004-12-21
  • 打赏
  • 举报
回复
建立一个表::
日期 编号 流向 货物名 数量 重量 表内编号
::表内编号:是针对货物的,一张单子里有多种货物,将这些货物进行一个表内编号.标识有多少种货物.
表内编号在“单子”(你的编号)内要有唯一性,
可以用:编号+表内编号做联合主键,当然在操作时注意一下也可。

建立你所需的报表时,根据“表内编号”来判定有多少种货物(需要多少个格)。

计算一共发了多少时,可以忽略“表内编号”的存在,直接对"数量"进行sum就可
vinsonshen 2004-12-21
  • 打赏
  • 举报
回复
CREATE TABLE sampleTable
(
OperateDate varchar(10) not null default convert(varchar(120),getdate(),120),
OperateCode varchar(10) not null,
WorkFlow varchar (30) not null,
CargoName varchar(10) not null,
Quantity float,
Weight float
)

create clustered index IX_OperateCode on sampleTable (OperateCode)
huangweizhao 2004-12-21
  • 打赏
  • 举报
回复
---建表:
create table tablename
(
OperateDate datetime ,
lantaiID int,
WorkFlow nvarchar(30) ,
Quantity int,
Weight float,
)

---创建视图:
create view viewname
as
select quantity*weight as totalweight from tablename



--计算共发货:
select sum(totalweight) from viewname
vinsonshen 2004-12-21
  • 打赏
  • 举报
回复
日期字段最好用这样的格式: varchar(10)

2004-12-21

以便以后进行分年及季度的统计~~~
vinsonshen 2004-12-21
  • 打赏
  • 举报
回复
CREATE TABLE sampleTable
(
lantaiID int IDENTITY (1,1) primary key,
OperateDate datetime not null,
OperateCode int,
WorkFlow nvarchar (30) not null,
CargoName nvarchar(10) not null,
Quantity int,
Weight float
)

-------------------
"lantaiID int IDENTITY (1,1) primary key"这个字段好象对你实际需求没什么用处的吧?如果没用的话,对以后查询也没什么帮助的话,那就不用了~~
vinsonshen 2004-12-21
  • 打赏
  • 举报
回复
你要根据你的实际需要,选个重复值比较少的字段来建立聚集索引,以便提高以后的查询速度~~
vinsonshen 2004-12-21
  • 打赏
  • 举报
回复
我认为应该做两个表
表1:
日期 编号 流向
表2:
编号 货物名 数量 重量

--------------
这样的话,那还不如直接把“货物名 数量 重量”合并到表1上,因为你一编号就对应一条记录了~~
gaojie001 2004-12-21
  • 打赏
  • 举报
回复
不知对否,请高手赐教
gaojie001 2004-12-21
  • 打赏
  • 举报
回复
我认为应该做两个表
表1:
日期 编号 流向
表2:
编号 货物名 数量 重量
huangweizhao 2004-12-21
  • 打赏
  • 举报
回复

建表:
create table tablename
(
OperateDate datetime ,
lantaiID int,
WorkFlow nvarchar(30) ,
Quantity int,
Weight float,
)

计算共发货:
select sum(weight) from tablename

Sundery 2004-12-21
  • 打赏
  • 举报
回复
对了,在表的最后,还希望能够做一个SUM的工作,计算一共发了多少,呵呵
Sundery 2004-12-21
  • 打赏
  • 举报
回复
另外的100分,请到http://community.csdn.net/Expert/topic/3588/3588762.xml?temp=.3430292领取
但是希望得到帮助

《程序设计方法》以Scheme语言为基础介绍计算和程序设计的一般理论和实践。《程序设计方法》由8个部和7个独立的章节(第8、13、18、24、29、33、38章)组成。8个部主要讨论程序设计,独立章节则介绍一些与程序设计和计算相关的话题。《程序设计方法》第1至第3部介绍了基于数据驱动的程序设计基础。第4部介绍了程序设计中的抽象问题。第5部和第6部是与递归及累积相关的内容。《程序设计方法》的最后两部说明了设计程序的意义,阐述了如何应用前6个部所描述的程序设计诀窍,以及使用赋值语句必须特别小心的一些问题。 《程序设计方法》可作为高等院校计算机科学与技术专业“程序设计导论”和“计算导论”的教材和教学参考书,也可作为函数式语言和Scheme语言的入门教材。 目录 · · · · · · 第一部 简单数据的处理 第1章 学生、教师和计算机 3 第2章 数、达式和简单程序 5 2.1 数和算术运算 5 2.2 变量和程序 6 2.3 字处理问题 9 2.4 错误 10 2.5 设计程序 12 第3章 程序就是函数加上变量定义 15 3.1 函数复合 15 3.2 变量定义 17 3.3 函数复合练习 18 第4章 条件达式和函数 20 4.1 布尔类型和关系 20 4.2 函数和条件测试 22 4.3 条件和条件函数 25 4.4 条件函数的设计 27 第5章 符号信息 31 第6章 复合数据之一:结构体 34 6.1 结构体 34 6.2 补充练习:绘制简单图形 36 6.3 结构体定义 38 6.4 数据定义 41 6.5 设计处理复合数据的函数 43 6.6 补充练习:圆和长方形的移动 46 6.7 补充练习:刽子手游戏 49 第7章 数据的多样性 52 7.1 数据混合与区 52 7.2 设计处理混合数据的函数 55 7.3 再论函数复合 58 7.4 补充练习:图形的移动 60 7.5 输入错误 61 第8章 语法和语义 63 8.1 Scheme的词汇 63 8.2 Scheme的文法 64 8.3 Scheme的含义 65 8.4 错误 68 8.5 布尔值达式 70 8.6 变量定义 71 8.7 结构体的定义 72 第二部 任意数目数据的处理 第9章 复合数据类型之二: 77 9.1 77 9.2 任意长的的数据定义 80 9.3 处理任意长的 82 9.4 设计自引用数据定义的函数 84 9.5 更多关于简单的例子 86 第10章 的进一步处理 90 10.1 返回的函数 90 10.2 包含结构体的 93 10.3 补充练习:移动图片 98 第11章 自然数 100 11.1 定义自然数 100 11.2 处理任意大的自然数 101 11.3 补充练习:创建,测试函数 103 11.4 自然数的另一种数据定义 104 11.5 更多与自然数有关的性质 108 第12章 三论函数复合 110 12.1 设计复杂的程序 110 12.2 递归的辅助函数 111 12.3 问题泛化与函数泛化 114 12.4 补充练习:字母的重新排列 117 第13章 用list构造 119 第三部 再论任意大数据的处理 第14章 再论自引用数据定义 125 14.1 结构体中的结构体 125 14.2 补充练习:二叉搜索树 131 14.3 中的 135 14.4 补充练习:Scheme求值 137 第15章 相互引用的数据定义 139 15.1 由结构体组成的与结构体中的 139 15.2 为相互引用的定义设计函数 144 15.3 补充练习:网页再谈 145 第16章 反复精化设计 147 16.1 数据析 147 16.2 定义数据类型,再改进它们 148 16.3 改进函数和程序 150 第17章 处理两种复杂数据片段 152 17.1 同时处理两个:第一种情况 152 17.2 同时处理两个:第二种情况 154 17.3 同时处理两个:第三种情况 156 17.4 函数的简化 159 17.5 设计读入两个复杂输入的函数 160 17.6 处理两个复杂输入的练习 161 17.7 补充练习:Scheme求值之二 164 17.8 相等与测试 165 第18章 局部定义和辖域 172 18.1 用local组织程序 172 18.2 辖域和块结构 183 第四部 抽象设计 第19章 定义的相似性 189 19.1 函数的类似之处 189 19.2 数据定义的类似之处 195 第20章 函数也是值 199 20.1 语法和语义 199 20.2 抽象函数和多态函数的合约 200 第21章 抽象设计的例子 204 21.1 从实例中抽象 204 21.2 抽
包含以下内容: 第一部 基础篇 001 第一个C程序 002 运行多个源文件 003 求整数之积 004 比较实数大小 005 字符的输出 006 显示变量所占字节数 007 自增/自减运算 008 数列求和 009 乘法口诀 010 猜数字游戏 011 模拟ATM(自动柜员机)界面 012 用一维数组统计学生成绩 013 用二维数组实现矩阵转置 014 求解二维数组的最大/最小元素 015 利用数组求前n个质数 016 编制万年历 017 对数组元素排序 018 任意进制数的转换 019 判断回文数 020 求数组前n元素之和 021 求解钢材切割的最佳订单 022 通过指针比较整数大小 023 指向数组的指针 024 寻找指定元素的指针 025 寻找相同元素的指针 026 阿拉伯数字转换为罗马数字 027 字符替换 028 从键盘读入实数 029 字符行排版 030 字符排列 031 判断字符串是否回文 032 通讯录的输入输出 033 扑克牌的结构示 034 用“结构”统计学生成绩 035 报数游戏 036 模拟社会关系 037 统计文件的字符数 038 同时显示两个文件的内容 039 简单的文本编辑器 040 文件的字数统计程序 041 学生成绩管理程序 第二部 数据结构篇 042 插入排序 043 希尔排序 044 冒泡排序 045 快速排序 046 选择排序 047 堆排序 048 归并排序 049 基数排序 050 二叉搜索树操作 051 二项式系数递归 052 背包问题 053 顺序插入和删除 054 链操作(1) 055 链操作(2) 056 单链就地逆置 057 运动会数统计 058 双链 059 约瑟夫环 060 记录个人资料 061 二叉树遍利 062 浮点数转换为字符串 063 汉诺塔问题 064 哈夫曼编码 065 图的深度优先遍利 066 图的广度优先遍利 067 求解最优交通路径 068 八皇后问题 069 骑士巡游 070 用栈设置密码 071 魔王语言翻译 072 火车车厢重排 073 队列实例 074 K阶斐波那契序列 第三部 数值计算与趣味数学篇 075 绘制余弦曲线和直线的迭加 076 计算高次方数的尾数 077 打鱼还是晒网 078 怎样存钱以获取最大利息 079 阿姆斯特朗数 080 亲密数 081 自守数 082 具有abcd=(ab+cd)2性质的数 083 验证歌德巴赫猜想 084 素数幻方 085 百钱百鸡问题 086 爱因斯坦的数学题 087 三色球问题 088 马克思手稿中的数学题 089 配对新郎和新娘 090 约瑟夫问题 091 邮票组合 092 糖果 093 波瓦松的酒趣题 094 求π的近似值 095 奇数平方的有趣性质 096 角谷猜想 097 四方定理 098 卡布列克常数 099 尼科彻斯定理 100 扑克牌自动发牌 101 常胜将军 102 搬山游戏 103 兔子产子(菲波那契数列) 104 数字移动 105 多项式乘法 106 产生随机数 107 堆栈四则运算 108 递归整数四则运算 109 复平面作图 110 绘制彩色抛物线 111 绘制正态布曲线 112 求解非线性方程 113 实矩阵乘法运算 114 求解线性方程 115 n阶方阵求逆 116 复矩阵乘法 117 求定积 118 求满足特异条件的数列 119 超长正整数的加法 第四部 图形篇 120 绘制直线 121 绘制圆 122 绘制圆弧 123 绘制椭圆 124 设置背景色和前景色 125 设置线条类型 126 设置填充类型和填充颜色 127 图形文本的输出 128 金刚石图案 129 飘带图案 130 圆环图案 131 肾形图案 132 心脏形图案 133 渔网图案 134 沙丘图案 135 设置图形方式下的文本类型 136 绘制正多边形 137 正六边形螺旋图案 138 正方形螺旋拼块图案 139 图形法绘制圆 140 递归法绘制三角形图案 141 图形法绘制椭圆 142 抛物样条曲线 143 Mandelbrot形图案 144 绘制布朗运动曲线 145 艺术清屏 146 矩形区域的颜色填充 147 VGA256色模式编程 148 绘制蓝天图案 149 屏幕检测程序 150 运动的小车动画 151 动态显示位图 152 利用图形页实现动画 153 图形时钟 154 音乐动画 第五部 系统篇 155 读取DOS系统中的国家信息 156 修改环境变量 157 显示系统文件 158 显示目录内容 159 读取磁盘文件 160 删除目录树 161 定义文本模式 162 设计立体窗口 163 彩色弹出菜单 164 读取CMOS信息 165 获取BIOS设备列 166 锁住硬盘 167 备份/恢复硬盘 168 设计口令程序 169 程序自我保护 第六部 常见试题解答篇 170 水果拼盘 171 小孩吃梨 172 删除字符串中的特定字符 173 求解符号方程 174 计算标准差 175 求取符合特定要求的素数 176 统计符合特定条件的数 177 字符串倒置 178 部排序 179 产品销售记录处理 180 特定要求的字符编码 181 求解三角方程 182 新完全平方数 183 三重回文数 184 奇数方差 185 统计选票 186 同时整除 187 字符左右排序 188 符号算式求解 189 数字移位 190 统计最高成绩 191 比较字符串长度 192 合并整数 193 矩阵逆置 194 删除指定的字符 195 括号匹配 196 字符串逆置 197 SIX/NINE问题 198 单词个数统计 199 方差运算 200 级数运算 201 输出素数 202 素数题 203 序列排序 204 整数各位数字排序 205 字符串字母移位 206 Fibonacc数列 第七部 游戏篇 207 商人过河游戏 208 吃数游戏 209 解救人质游戏 210 打字训练游戏 211 双人竞走游戏 212 迷宫探险游戏 213 迷你撞球游戏 214 模拟扫雷游戏 215 推箱子游戏 216 五子棋游戏 第八部 综合实例篇 217 综合CAD系统 218 功能强大的文本编辑器 219 图书管理系统 220 进销存管理系统

34,588

社区成员

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

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