找回密码
 注册账号

QQ登录

只需一步,快速开始

手机号码,快捷登录

手机号码,快捷登录

初学者课程:T3自学|T6自学|U8自学软件下载课件下载工具下载资料:通资料|U8资料|NC|培训|年结积分规则 | 使用常见问题Q&A
知识库:U8 | | NC | U9 | OA | 政务U8|U9|NCC|NC65|NC65客开|NCC客开新手必读 | 任务 | 快速增金币用友QQ群[微信群]
查看: 1947|回复: 5

[求助] 求助这个sql server 如何写

[复制链接]
发表于 2022-5-20 10:44:32 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册账号

×

cbatch 210106007 出库数量 20000    4月 开票数   16000   未开 4000

                            如何做到 5月开票    2000 时 4月未开的变成  4000

现在 我这样写的 变成2000了,

SELECT   w.cBatch, w.cInvCode AS 物料号, w.cCode, e.cInvName AS 存货名称, e.cInvStd AS 规格型号,
                c.cCusName AS 客户名称, w.dDate AS 出库日期, u.cComUnitName AS 单位, w.iQuantity AS 出库数量,
                w.iUnitCost AS 单价, ISNULL(w.iQuantity - ISNULL(v.iQuantity, 0), 0) AS 未开数量,
                w.iUnitCost * ISNULL(w.iQuantity - ISNULL(v.iQuantity, 0), 0) AS 未开金额, f.dDate AS 开票日期, ISNULL(d.iQuantity,
                0) AS 已开票数量, d.iUnitPrice, d.iMoney AS 无税金额, d.iSum AS 价税合计
FROM      (SELECT   a.cCode, b.cInvCode, a.dDate, b.iQuantity, b.iNum, b.cBatch, a.cCusCode, b.iUnitCost
                 FROM      dbo.rdrecord32 AS a INNER JOIN
                                 dbo.rdrecords32 AS b ON a.ID = b.ID
                 WHERE   (YEAR(a.dDate) > 2019)) AS w INNER JOIN
                dbo.Customer AS c ON w.cCusCode = c.cCusCode INNER JOIN
                dbo.inventory AS e ON e.cInvCode = w.cInvCode LEFT OUTER JOIN
                dbo.ComputationUnit AS u ON e.cComUnitCode = u.cComunitCode LEFT OUTER JOIN
                dbo.SaleBillVouchs AS d ON d.cbsaleout = w.cCode AND w.cBatch = d.cBatch AND
                w.cInvCode = d.cInvCode LEFT OUTER JOIN
                dbo.SaleBillVouch AS f ON d.SBVID = f.SBVID LEFT OUTER JOIN
                    (SELECT   cbsaleout, cInvCode, cBatch, SUM(iQuantity) AS iQuantity, SUM(iMoney) AS iMoney
                     FROM      dbo.SaleBillVouchs
                     GROUP BY cbsaleout, cInvCode, cBatch) AS v ON v.cbsaleout = w.cCode AND w.cBatch = v.cBatch AND
                w.cInvCode = v.cInvCode


WHERE   (w.cCode = '202203140020')

1653013934(1).jpg


发表于 2022-5-20 11:09:47 | 显示全部楼层
计算未开数量时加个case when条件

点评

这个case when 怎么写  详情 回复 发表于 2022-5-20 12:29
回复 点赞 拍砖

使用道具 举报

发表于 2022-5-20 11:34:08 | 显示全部楼层
按期间查询,4月未开票量本来就是4000, 计算如此,不存在,你5月开票了,四月现存量就变了逻辑,,后台数据库要控制期间的
回复 点赞 拍砖

使用道具 举报

 楼主| 发表于 2022-5-20 12:29:52 | 显示全部楼层
ntmino 发表于 2022-5-20 11:09
计算未开数量时加个case when条件

这个case when 怎么写
回复 点赞 拍砖

使用道具 举报

发表于 2022-5-31 16:11:44 | 显示全部楼层
加油一起学习
回复 点赞 拍砖

使用道具 举报

发表于 2022-6-10 16:58:28 | 显示全部楼层
复杂的sql
回复 点赞 拍砖

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号

本版积分规则

QQ|站长微信|Archiver|手机版|小黑屋|用友之家 ( 蜀ICP备07505338号|51072502110008 )

GMT+8, 2024-4-25 08:30 , Processed in 0.041717 second(s), 8 queries , Gzip On, Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表