社区
MS-SQL Server
帖子详情
百分求两个答案
shamihu
2004-09-02 12:47:49
1. 这样是视图怎样建立
有三个表A,B,C 关系是 A 和 B 是一对一关系, A 和 C 是一对多关系
其中的关联字段是各表的商品编号和商品批号
现在要求建立一个视图, 将 A,B,C表关联起来, 但麻烦的是只需要取C 表的最大入库时间
即这三个表组成的视图只有一条记录.
2. 从两个结构完全一样的表取数据合并成另外一个表, 但要求, 商品编号相同的数量累加, 商品批号只取最大的一个
注: 商品编号是关键字
急切盼望大家的帮忙, 先谢谢了!
...全文
90
11
打赏
收藏
百分求两个答案
1. 这样是视图怎样建立 有三个表A,B,C 关系是 A 和 B 是一对一关系, A 和 C 是一对多关系 其中的关联字段是各表的商品编号和商品批号 现在要求建立一个视图, 将 A,B,C表关联起来, 但麻烦的是只需要取C 表的最大入库时间 即这三个表组成的视图只有一条记录. 2. 从两个结构完全一样的表取数据合并成另外一个表, 但要求, 商品编号相同的数量累加, 商品批号只取最大的一个 注: 商品编号是关键字 急切盼望大家的帮忙, 先谢谢了!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
11 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
rouqu
2004-09-05
打赏
举报
回复
两个我都试了一下 应该可以的呀
shamihu
2004-09-05
打赏
举报
回复
现在我只好分2步进行了
看来一个视图无法解决
shamihu
2004-09-05
打赏
举报
回复
这几天比较忙,直到今天才有时间上来
谢谢! rouqu(石林#黄果树)
第一个还是不行,
第二个可以
rouqu
2004-09-02
打赏
举报
回复
时间栏不对 晕
rouqu
2004-09-02
打赏
举报
回复
问题二写完睡觉了 对不对明天说:)
select [药品编号],[单价],[客户名称],[有效期],[入库时间],[开票员],[my_id],sum([数量]) [数量],max([药品批号]) [药品批号]
from
(
select * from [出库单]
union all
select * from [入库单]
)
group by [药品编号],[单价],[客户名称],[有效期],[入库时间],[开票员],[my_id],sum([数量]) [数量]
rouqu
2004-09-02
打赏
举报
回复
呵呵 你把所有字段都选上肯定不行了 简单写一下
--表1和表3关联分组求最大 表2再关联
SELECT dbo.出库单.药品编号,dbo.出库单.客户名称, dbo.出库单.出库时间,
dbo.出库单.开票员, dbo.出库单.单据编号, MAX(dbo.入库单.入库时间) AS 入库时间
FROM dbo.出库单 INNER JOIN dbo.入库单
ON dbo.出库单.药品编号 = dbo.入库单.药品编号 AND dbo.出库单.药品批号 = dbo.入库单.药品批号
GROUP BY dbo.出库单.药品编号,dbo.出库单.客户名称, dbo.出库单.出库时间,
dbo.出库单.开票员, dbo.出库单.单据编号
shamihu
2004-09-02
打赏
举报
回复
TO: rouqu(石林#黄果树)
第二个问题看来也不行,
其实第二个问题就是从这个视图取出两个不同"单据编号"的数据来组成另外一套数据
要求其中的相同药品编号的数量相加,如果药品批号不同,只取最大的一个.
shamihu
2004-09-02
打赏
举报
回复
TO: rouqu(石林#黄果树)
非常感谢你的热情回答, 但第一个这样不行啊,第2个我还没试验.
create view viewname as
SELECT dbo.出库单.药品编号, dbo.药品信息.商品规格, dbo.药品信息.商品名称,
dbo.药品信息.货位号, dbo.药品信息.单位, dbo.出库单.数量, dbo.出库单.单价,
dbo.出库单.单价 * dbo.出库单.数量 AS 金额, dbo.药品信息.产地, dbo.药品信息.规格,
dbo.出库单.药品批号, dbo.药品信息.质量情况, dbo.入库单.有效期,
dbo.药品信息.牌价, dbo.药品信息.类别, dbo.药品信息.包装, dbo.药品信息.税率,
dbo.药品信息.税额, dbo.药品信息.批号, dbo.出库单.客户名称, dbo.出库单.出库时间,
dbo.出库单.开票员, dbo.出库单.单据编号, MAX(dbo.入库单.入库时间) AS 入库时间
FROM dbo.出库单 INNER JOIN
dbo.药品信息 ON dbo.出库单.药品编号 = dbo.药品信息.商品编号
LEFT OUTER JOIN
dbo.入库单 ON dbo.出库单.药品编号 = dbo.入库单.药品编号 AND
dbo.出库单.药品批号 = dbo.入库单.药品批号
GROUP BY dbo.出库单.药品编号, dbo.出库单.药品批号
================================================================
三个表的结构如下:
CREATE TABLE [出库单] (
[药品编号] [varchar] (10) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[单价] [numeric](16, 2) NOT NULL CONSTRAINT [DF_出库单_单价] DEFAULT (0),
[数量] [int] NOT NULL CONSTRAINT [DF_出库单_数量] DEFAULT (0),
[药品批号] [varchar] (20) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[客户名称] [varchar] (50) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[出库时间] [datetime] NOT NULL CONSTRAINT [DF_出库单_出库时间] DEFAULT (getdate()),
[开票员] [varchar] (10) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[单据编号] [varchar] (12) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[my_id] [varchar] (20) COLLATE Chinese_PRC_CI_AS NOT NULL ,
CONSTRAINT [PK_出库单] PRIMARY KEY NONCLUSTERED
(
[my_id]
) ON [PRIMARY]
) ON [PRIMARY]
GO
CREATE TABLE [药品信息] (
[商品编号] [varchar] (10) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[商品规格] [varchar] (20) COLLATE Chinese_PRC_CI_AS NULL ,
[商品名称] [varchar] (20) COLLATE Chinese_PRC_CI_AS NULL ,
[货位号] [varchar] (10) COLLATE Chinese_PRC_CI_AS NULL ,
[单位] [varchar] (4) COLLATE Chinese_PRC_CI_AS NULL ,
[产地] [varchar] (10) COLLATE Chinese_PRC_CI_AS NULL ,
[规格] [numeric](10, 0) NULL ,
[质量情况] [varchar] (4) COLLATE Chinese_PRC_CI_AS NULL ,
[牌价] [numeric](12, 2) NULL ,
[类别] [varchar] (10) COLLATE Chinese_PRC_CI_AS NULL ,
[包装] [varchar] (10) COLLATE Chinese_PRC_CI_AS NULL ,
[税率] [numeric](7, 2) NULL ,
[税额] [numeric](14, 2) NULL ,
[批号] [varchar] (8) COLLATE Chinese_PRC_CI_AS NULL ,
CONSTRAINT [PK_药品信息] PRIMARY KEY NONCLUSTERED
(
[商品编号]
) ON [PRIMARY]
) ON [PRIMARY]
GO
CREATE TABLE [入库单] (
[药品编号] [varchar] (10) COLLATE Chinese_PRC_CI_AS NULL ,
[单价] [numeric](16, 2) NULL CONSTRAINT [DF_入库单_单价] DEFAULT (0),
[数量] [int] NULL CONSTRAINT [DF_入库单_数量] DEFAULT (0),
[药品批号] [varchar] (20) COLLATE Chinese_PRC_CI_AS NULL ,
[客户名称] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
[有效期] [varchar] (10) COLLATE Chinese_PRC_CI_AS NULL ,
[入库时间] [datetime] NULL CONSTRAINT [DF_入库单_入库时间] DEFAULT (getdate()),
[开票员] [varchar] (10) COLLATE Chinese_PRC_CI_AS NULL ,
[my_id] [varchar] (20) COLLATE Chinese_PRC_CI_AS NOT NULL ,
CONSTRAINT [PK_入库单] PRIMARY KEY NONCLUSTERED
(
[my_id]
) ON [PRIMARY]
) ON [PRIMARY]
GO
===============================
现要求用"出库单","药品信息"和"入库单"组成一个视图
其中 出库单 和 入库单 是用药品编号,药品批号组成的一对多关系
取最大入库时间
再次感谢帮忙!
solidpanther
2004-09-02
打赏
举报
回复
最好给出表的具体结构
rouqu
2004-09-02
打赏
举报
回复
修正一下 不好意思
问题2:
select a.商品编号,sum(商品数量) 商品数量,max(a.商品批号) 商品批号 from
(
select * from table1
union all
select * from table2
) a
group by a.商品编号
rouqu
2004-09-02
打赏
举报
回复
问题1:
create view viewname as
select A.字段1,max(C.入库时间) 入库时间
from A inner join B on A.字段1 = B.字段1 left join C on A.字段x = C.字段x
group by A.字段1
问题2:
select a.商品编号,sum(商品数量),max(a.商品批号) 商品批号 from
(
select * from table1
union
select * from table2
) a
group by a.商品编号
2023.6.13-【柴田望洋教材习题】-键盘输入
两个
整数,
求
前一个整数占后一个整数的
百分
之比(1)
练习一:键盘输入
两个
整数,计算并显示前者占后者的
百分
比。 代码如下: int a = 0; int b = 0; puts("输入
两个
整数(整数小于整数2)。"); printf("整数1:"); scanf("%d",&a); printf("整数2:"); scanf("%d...
PML之
百分
位数、数据分布、正态数据分布
示例:假设我们有一个街道上所有人口的年龄数组。 ages = [5,31,43,48,50,41,7,11,15,39,80,82,32,2,8,6,25,36,27,61,31] 什么是75.
百分
位数?
答案
是43,这意味着75%的人是43岁或以下。 90%的人口年龄是多少...
python好学吗mooc中文网-2020年大学mooc用Python玩转数据作业
答案
2020年大学mooc用Python玩转数据作业
答案
更多相关问题一台电脑先涨价着一%,后降价2一%,这台电脑一现价同原价相比是()A.一样的B.降低了C.提高了直接写出9数 3÷地下%=6×3下%=3.地4×3=手少-34=地3+地4=25÷...
2021-10-19
1.PTA作业 1.1:7-1 计算摄氏温度 本题要
求
编写程序,计算华氏温度100°F对应的摄氏温度。...编写一段程序,像下面那样读取
两个
整数, 然后显示出前者是后者的
百分
之几 请输入
两个
整数。 整数x:54(回车)
百分
六用计算机该怎么算,24975000的
百分
之五是多少,用计算器怎么算?
24975000的
百分
之五是多少,用计算器怎么算?以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!24975000的
百分
之五是多少,用计算器怎么算?5%=0....
MS-SQL Server
34,590
社区成员
254,589
社区内容
发帖
与我相关
我的任务
MS-SQL Server
MS-SQL Server相关内容讨论专区
复制链接
扫一扫
分享
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章