sql查询

商品平衡分析查询.mp4

SELECT   TOP (100) dbo.商品价格.商品代码, dbo.商品价格.商品名称, dbo.商品单位.商品单位, dbo.期初汇总.期初数量, 

                dbo.入库汇总.入库数量, dbo.欠款销售汇总.欠款销售数量, dbo.现款销售汇总.现款销售数量, dbo.退货汇总.退货数量, 

                dbo.期末汇总.期末数量, dbo.报损汇总.报损数量, dbo.调整汇总.调整数量, ISNULL(dbo.入库汇总.入库数量, 0) 

                + ISNULL(dbo.期初汇总.期初数量, 0) - ISNULL(dbo.退货汇总.退货数量, 0) - ISNULL(dbo.欠款销售汇总.欠款销售数量, 0) 

                - ISNULL(dbo.现款销售汇总.现款销售数量, 0) - ISNULL(dbo.期末汇总.期末数量, 0) - ISNULL(dbo.报损汇总.报损数量, 0) 

                - ISNULL(dbo.调整汇总.调整数量, 0) AS 误差数量, dbo.商品价格.商品型号

FROM      dbo.商品单位 INNER JOIN

                dbo.报损汇总 RIGHT OUTER JOIN

                dbo.欠款销售汇总 RIGHT OUTER JOIN

                dbo.期初汇总 RIGHT OUTER JOIN

                dbo.商品价格 ON dbo.期初汇总.商品代码 = dbo.商品价格.商品代码 ON 

                dbo.欠款销售汇总.商品代码 = dbo.商品价格.商品代码 LEFT OUTER JOIN

                dbo.期末汇总 ON dbo.商品价格.商品代码 = dbo.期末汇总.商品代码 LEFT OUTER JOIN

                dbo.退货汇总 ON dbo.商品价格.商品代码 = dbo.退货汇总.商品代码 ON 

                dbo.报损汇总.商品代码 = dbo.商品价格.商品代码 LEFT OUTER JOIN

                dbo.现款销售汇总 ON dbo.商品价格.商品代码 = dbo.现款销售汇总.商品代码 LEFT OUTER JOIN

                dbo.入库汇总 ON dbo.商品价格.商品代码 = dbo.入库汇总.商品代码 LEFT OUTER JOIN

                dbo.调整汇总 ON dbo.商品价格.商品代码 = dbo.调整汇总.商品代码 ON 

                dbo.商品单位.商品单位ID = dbo.商品价格.商品单位

WHERE   (dbo.期初汇总.期初数量 IS NOT NULL) OR

                (dbo.入库汇总.入库数量 IS NOT NULL) OR

                (dbo.欠款销售汇总.欠款销售数量 IS NOT NULL) OR

                (dbo.现款销售汇总.现款销售数量 IS NOT NULL) OR

                (dbo.退货汇总.退货数量 IS NOT NULL) OR

                (dbo.期末汇总.期末数量 IS NOT NULL) OR

                (dbo.报损汇总.报损数量 IS NOT NULL)

ORDER BY dbo.商品价格.商品代码商品平衡.JPG

我在进销存数据库中创建商品平衡分析查询,结果保存时出现上面对话框,而且总是只显示100条记录,就是把 TOP (100)删除,保存后又出现 TOP (100),不知是什么原因?

FineReport chengli 发布于 2019-6-27 15:12 (编辑于 2019-6-27 15:46)
1min目标场景问卷 立即参与
回答问题
悬赏:4 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共1回答
最佳回答
0
doudekaixinLv6中级互助
发布于2019-6-27 15:16(编辑于 2019-6-27 15:16)
select * from (SELECT
	TOP (100) dbo.商品价格.商品代码,
	dbo.商品价格.商品名称,
	dbo.商品单位.商品单位,
	dbo.期初汇总.期初数量,
	dbo.入库汇总.入库数量,
	dbo.欠款销售汇总.欠款销售数量,
	dbo.现款销售汇总.现款销售数量,
	dbo.退货汇总.退货数量,
	dbo.期末汇总.期末数量,
	dbo.报损汇总.报损数量,
	dbo.调整汇总.调整数量,
	ISNULL(
		dbo.入库汇总.入库数量,
		0
	) + ISNULL(
		dbo.期初汇总.期初数量,
		0
	) - ISNULL(
		dbo.退货汇总.退货数量,
		0
	) - ISNULL(
		dbo.欠款销售汇总.欠款销售数量,
		0
	) - ISNULL(
		dbo.现款销售汇总.现款销售数量,
		0
	) - ISNULL(
		dbo.期末汇总.期末数量,
		0
	) - ISNULL(
		dbo.报损汇总.报损数量,
		0
	) - ISNULL(
		dbo.调整汇总.调整数量,
		0
	) AS 误差数量,
	dbo.商品价格.商品型号
FROM
	dbo.商品单位
INNER JOIN dbo.报损汇总
RIGHT OUTER JOIN dbo.欠款销售汇总
RIGHT OUTER JOIN dbo.期初汇总
RIGHT OUTER JOIN dbo.商品价格 ON dbo.期初汇总.商品代码 = dbo.商品价格.商品代码 ON dbo.欠款销售汇总.商品代码 = dbo.商品价格.商品代码
LEFT OUTER JOIN dbo.期末汇总 ON dbo.商品价格.商品代码 = dbo.期末汇总.商品代码
LEFT OUTER JOIN dbo.退货汇总 ON dbo.商品价格.商品代码 = dbo.退货汇总.商品代码 ON dbo.报损汇总.商品代码 = dbo.商品价格.商品代码
LEFT OUTER JOIN dbo.现款销售汇总 ON dbo.商品价格.商品代码 = dbo.现款销售汇总.商品代码
LEFT OUTER JOIN dbo.入库汇总 ON dbo.商品价格.商品代码 = dbo.入库汇总.商品代码
LEFT OUTER JOIN dbo.调整汇总 ON dbo.商品价格.商品代码 = dbo.调整汇总.商品代码 ON dbo.商品单位.商品单位ID = dbo.商品价格.商品单位
WHERE
	(
		dbo.期初汇总.期初数量 IS NOT NULL
	)
OR (
	dbo.入库汇总.入库数量 IS NOT NULL
)
OR (
	dbo.欠款销售汇总.欠款销售数量 IS NOT NULL
)
OR (
	dbo.现款销售汇总.现款销售数量 IS NOT NULL
)
OR (
	dbo.退货汇总.退货数量 IS NOT NULL
)
OR (
	dbo.期末汇总.期末数量 IS NOT NULL
)
OR (
	dbo.报损汇总.报损数量 IS NOT NULL
)) t
ORDER BY
	t.商品代码

试下

  • chengli chengli(提问者) 这个T代表什么?
    2019-06-27 15:20 
  • doudekaixin doudekaixin 回复 chengli(提问者) 没什么,一张表名,和你的中文表明一样。自己定义的。 解决了么?解决了采纳一下,谢谢
    2019-06-27 15:23 
  • chengli chengli(提问者) SELECT TOP (100) PERCENT 商品代码, 商品名称, 商品单位, 期初数量, 入库数量, 欠款销售数量, 现款销售数量, 退货数量, 期末数量, 报损数量, 调整数量, 误差数量, 商品型号 FROM (SELECT TOP (300) dbo.商品价格.商品代码, dbo.商品价格.商品名称, dbo.商品单位.商品单位, dbo.期初汇总.期初数量, dbo.入库汇总.入库数量, dbo.欠款销售汇总.欠款销售数量, dbo.现款销售汇总.现款销售数量, dbo.退货汇总.退货数量, dbo.期末汇总.期末数量, dbo.报损汇总.报损数量, dbo.调整汇总.调整数量, ISNULL(dbo.入库汇总.入库数量, 0) + ISNULL(dbo.期初汇总.期初数量, 0) - ISNULL(dbo.退货汇总.退货数量, 0) - ISNULL(dbo.欠款销售汇总.欠款销售数量, 0) - ISNULL(dbo.现款销售汇总.现款销售数量, 0) - ISNULL(dbo.期末汇总.期末数量, 0) - ISNULL(dbo.报损汇总.报损数量, 0) - ISNULL(dbo.调整汇总.调整数量, 0) AS 误差数量, dbo.商品价格.商品型号 FROM dbo.商品单位 INNER JOIN dbo.报损汇总 RIGHT OUTER JOIN dbo.欠款销售汇总 RIGHT OUTER JOIN dbo.期初汇总 RIGHT OUTER JOIN dbo.商品价格 ON dbo.期初汇总.商品代码 = dbo.商品价格.商品代码 ON dbo.欠款销售汇总.商品代码 = dbo.商品价格.商品代码 LEFT OUTER JOIN dbo.期末汇总 ON dbo.商品价格.商品代码 = dbo.期末汇总.商品代码 LEFT OUTER JOIN dbo.退货汇总 ON dbo.商品价格.商品代码 = dbo.退货汇总.商品代码 ON dbo.报损汇总.商品代码 = dbo.商品价格.商品代码 LEFT OUTER JOIN dbo.现款销售汇总 ON dbo.商品价格.商品代码 = dbo.现款销售汇总.商品代码 LEFT OUTER JOIN dbo.入库汇总 ON dbo.商品价格.商品代码 = dbo.入库汇总.商品代码 LEFT OUTER JOIN dbo.调整汇总 ON dbo.商品价格.商品代码 = dbo.调整汇总.商品代码 ON dbo.商品单位.商品单位ID = dbo.商品价格.商品单位 WHERE (dbo.期初汇总.期初数量 IS NOT NULL) OR (dbo.入库汇总.入库数量 IS NOT NULL) OR (dbo.欠款销售汇总.欠款销售数量 IS NOT NULL) OR (dbo.现款销售汇总.现款销售数量 IS NOT NULL) OR (dbo.退货汇总.退货数量 IS NOT NULL) OR (dbo.期末汇总.期末数量 IS NOT NULL) OR (dbo.报损汇总.报损数量 IS NOT NULL)) AS t ORDER BY 商品代码 保存后成了上面的代码,我把中间的top改成了top(300)
    2019-06-27 15:26 
  • chengli chengli(提问者) 回复 doudekaixin 没有解决,保存后又出现SELECT TOP (100) PERCENT,我想显示全部数据,结果还是没有全部显示
    2019-06-27 15:33 
  • doudekaixin doudekaixin 回复 chengli(提问者) 你难道都不知道我改的代码差异在哪里么????你又在外面包了一层TOP100,那你要用order by 就要在外面再套一层。
    2019-06-27 15:34 
  • 2关注人数
  • 376浏览人数
  • 最后回答于:2019-6-27 15:46
    请选择关闭问题的原因
    确定 取消
    返回顶部