一个视图的问题求助!

ww176185299 2015-07-29 09:19:25


想实现上述功能请问视图改如何写?我写的视图记录不是重复就是缺少....
...全文
199 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
Haytor 2015-07-30
  • 打赏
  • 举报
回复
可以参考一下这个脚本

;WITH Tab1(ID,Nums) AS (
SELECT 'HS001',100
),
Tab2(InDate,ID,Nums) AS(
SELECT '2015-07-24','HS001',40 UNION ALL
SELECT '2015-07-25','HS001',60 UNION ALL
SELECT '2015-07-27','HS001',55 UNION ALL
SELECT '2015-07-29','HS001',100
),
Tab3(OutDate,ID,Nums) AS(
SELECT '2015-07-25','HS001',40 UNION ALL
SELECT '2015-07-26','HS001',60 UNION ALL
SELECT '2015-07-27','HS001',30 UNION ALL
SELECT '2015-07-28','HS001',40
)
SELECT
a.ID,
a.Nums,
bb.Date,
bb.InNums,
bb.OutNum
FROM Tab1 a INNER JOIN
(
SELECT
ISNULL(b.ID,c.ID) AS ID,
ISNULL(b.InDate,c.OutDate) AS [Date],
b.Nums AS InNums,
c.Nums AS OutNum
FROM
Tab2 b
FULL JOIN Tab3 c ON b.ID = c.ID AND b.InDate = c.OutDate
) bb ON bb.ID = a.ID
ORDER BY
bb.Date

ww176185299 2015-07-30
  • 打赏
  • 举报
回复
引用 1 楼 shoppo0505 的回复:
select
a.产品编码
a.数量 as 订单数量
b.入库日期 as 日期
b.数量 as 入库数量
null as 出库数量
from 订单表 a
inner join 入库表 b on a.产品编码 = b.产品编码

union all

select
a.产品编码
a.数量 as 订单数量
b.出库日期 as 日期
null as 入库数量
b.数量 as 出库数量
from 订单表 a
inner join 出库表 b on a.产品编码 = b.产品编码


不好意思,我的示例表没有表述清楚,实际可能会出现同一天既有入库又有出库的情况:
ww176185299 2015-07-30
  • 打赏
  • 举报
回复
引用 4 楼 airsoft 的回复:
可以参考一下这个脚本

;WITH Tab1(ID,Nums) AS (
	SELECT 'HS001',100
),
Tab2(InDate,ID,Nums) AS(
	SELECT '2015-07-24','HS001',40 UNION ALL
	SELECT '2015-07-25','HS001',60 UNION ALL
	SELECT '2015-07-27','HS001',55 UNION ALL
	SELECT '2015-07-29','HS001',100
),
Tab3(OutDate,ID,Nums) AS(
	SELECT '2015-07-25','HS001',40 UNION ALL
	SELECT '2015-07-26','HS001',60 UNION ALL
	SELECT '2015-07-27','HS001',30 UNION ALL
	SELECT '2015-07-28','HS001',40
)
SELECT
	a.ID,
	a.Nums,
	bb.Date,
	bb.InNums,
	bb.OutNum
FROM Tab1 a INNER JOIN 
	(
		SELECT
			ISNULL(b.ID,c.ID) AS ID,
			ISNULL(b.InDate,c.OutDate) AS [Date],
			b.Nums AS InNums,
			c.Nums AS OutNum
		FROM 
			Tab2 b
		FULL JOIN Tab3 c ON b.ID = c.ID AND b.InDate = c.OutDate
	) bb ON bb.ID = a.ID
ORDER BY
	bb.Date

谢谢,代码没有问题,之前别名弄错了。
ww176185299 2015-07-30
  • 打赏
  • 举报
回复
引用 1 楼 shoppo0505 的回复:
select a.产品编码 a.数量 as 订单数量 b.入库日期 as 日期 b.数量 as 入库数量 null as 出库数量 from 订单表 a inner join 入库表 b on a.产品编码 = b.产品编码 union all select a.产品编码 a.数量 as 订单数量 b.出库日期 as 日期 null as 入库数量 b.数量 as 出库数量 from 订单表 a inner join 出库表 b on a.产品编码 = b.产品编码
谢谢回复,在简易表测试结果正确,我之前也尝试过用UNION ALL,但总是出错,好像是列的数量不一致的原因。 我再在实际应用中的操作的试试,不懂的还请多多指教!谢谢!
yenbsher 2015-07-30
  • 打赏
  • 举报
回复


 select
a.产品编码,
a.数量 as 订单数量,
b.日期,
sum(b.入库数量) as 入库数量,
sum(b.出库数量) as 出库数量 
from 订单表 a ,( 
select 入库日期 as 日期,产品编码,数量 as 入库数量,0 as 出库数量 from 入库表
union all
select 出库日期 as 日期,产品编码,0 as 入库数量,数量 as 出库数量 from 出库表)b
where a.产品编码=b.产品编码
group by a.产品编码,a.数量,b.日期

shoppo0505 2015-07-30
  • 打赏
  • 举报
回复
引用 3 楼 ww176185299 的回复:
[quote=引用 1 楼 shoppo0505 的回复:] select a.产品编码 a.数量 as 订单数量 b.入库日期 as 日期 b.数量 as 入库数量 null as 出库数量 from 订单表 a inner join 入库表 b on a.产品编码 = b.产品编码 union all select a.产品编码 a.数量 as 订单数量 b.出库日期 as 日期 null as 入库数量 b.数量 as 出库数量 from 订单表 a inner join 出库表 b on a.产品编码 = b.产品编码
不好意思,我的示例表没有表述清楚,实际可能会出现同一天既有入库又有出库的情况: [/quote] 基本也是一样的错作,在前面的语句后面,group by 产品编码, 订单数量,日期, 前面sum出库,入库数量就好
ww176185299 2015-07-30
  • 打赏
  • 举报
回复
我感觉这个嵌套的思路应该是对的,但不知道哪里出错了。
ww176185299 2015-07-30
  • 打赏
  • 举报
回复
引用 4 楼 airsoft 的回复:
可以参考一下这个脚本

;WITH Tab1(ID,Nums) AS (
SELECT 'HS001',100
),
Tab2(InDate,ID,Nums) AS(
SELECT '2015-07-24','HS001',40 UNION ALL
SELECT '2015-07-25','HS001',60 UNION ALL
SELECT '2015-07-27','HS001',55 UNION ALL
SELECT '2015-07-29','HS001',100
),
Tab3(OutDate,ID,Nums) AS(
SELECT '2015-07-25','HS001',40 UNION ALL
SELECT '2015-07-26','HS001',60 UNION ALL
SELECT '2015-07-27','HS001',30 UNION ALL
SELECT '2015-07-28','HS001',40
)
SELECT
a.ID,
a.Nums,
bb.Date,
bb.InNums,
bb.OutNum
FROM Tab1 a INNER JOIN
(
SELECT
ISNULL(b.ID,c.ID) AS ID,
ISNULL(b.InDate,c.OutDate) AS [Date],
b.Nums AS InNums,
c.Nums AS OutNum
FROM
Tab2 b
FULL JOIN Tab3 c ON b.ID = c.ID AND b.InDate = c.OutDate
) bb ON bb.ID = a.ID
ORDER BY
bb.Date



你好,谢谢你的回复!
我将这一段
SELECT
ISNULL(b.ID,c.ID) AS ID,
ISNULL(b.InDate,c.OutDate) AS [Date],
b.Nums AS InNums,
c.Nums AS OutNum
FROM
Tab2 b
FULL JOIN Tab3 c ON b.ID = c.ID AND b.InDate = c.OutDate
里的表名、字段名替换为我的表名、字段名后可以的到结果,但套上外面的SELECT后,也就是执行:
SELECT
a.ID,
a.Nums,
bb.Date,
bb.InNums,
bb.OutNum
FROM Tab1 a INNER JOIN
(
SELECT
ISNULL(b.ID,c.ID) AS ID,
ISNULL(b.InDate,c.OutDate) AS [Date],
b.Nums AS InNums,
c.Nums AS OutNum
FROM
Tab2 b
FULL JOIN Tab3 c ON b.ID = c.ID AND b.InDate = c.OutDate
) bb ON bb.ID = a.ID
提示:

shoppo0505 2015-07-30
  • 打赏
  • 举报
回复
select a.产品编码 a.数量 as 订单数量 b.入库日期 as 日期 b.数量 as 入库数量 null as 出库数量 from 订单表 a inner join 入库表 b on a.产品编码 = b.产品编码 union all select a.产品编码 a.数量 as 订单数量 b.出库日期 as 日期 null as 入库数量 b.数量 as 出库数量 from 订单表 a inner join 出库表 b on a.产品编码 = b.产品编码
一、项目简介 本项目(HF24075 SDFeatureRivertraining)是一套以多路 PWM 多彩 LED 灯光控制为核心的固件方案,基于 PADAUK PMS 系列单片机。方案对蓝、青、粉等多色 LED 进行独立 PWM 调光,实现呼吸、渐变、流水等细腻灯光效果,并支持按键切换与传感器交互。其 PWM 调光结构清晰,是学习单片机 PWM、色彩混合与灯光算法的理想范例。 核心应用场景: 1. 氛围灯 / 流水灯产品开发 2. PWM 调光与色彩混合学习 3. 电子类课程设计 / 毕业设计 4. 灯光艺术与 DIY 项目 适配使用场景:学习练手、毕业设计、课程设计、创业售卖、实操实训,突出实用性与可落地性。 二、硬件核心配置 · 主控芯片:PADAUK(应广科技)PMS 系列 8 位 OTP 单片机 · 外接外设: - 多色 LED 灯组(蓝 / 青 / 粉等多路独立 PWM) - 轻触按键(模式切换) - 传感器(交互触发) · 操控设备: - 机身实体按键操控 三、核心功能介绍 1. 多路独立 PWM 调光:蓝、青、粉等 LED 各自独立占空比控制,实现精准亮度; 2. 呼吸 / 渐变 / 流水效果:通过 PWM 变化曲线营造丰富灯光律动; 3. 按键切换模式:轻触在多种灯效间循环切换; 4. 传感器交互:外部传感信号触发或联动灯光变化; 5. 低功耗设计:闲置进入低功耗,按需唤醒。 6. 参数可配:亮灭周期、渐变速度等可调,便于定制。 四、项目优势与亮点 · 灯光细腻:多路独立 PWM,效果远胜简单开关灯。 · 算法清晰:呼吸 / 渐变实现简洁,易于理解与移植。 · 扩展性强:可轻松增加颜色与模式,适配各类灯饰。 ·

22,296

社区成员

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

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