求一个SQL语句

好奇都是要学的 2019-03-19 03:24:48
订单表 有时间列 和金额

金库表有实际列 和金额

求 按日期分钟 取出 当天的差价,
...全文
268 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
vflink 2019-03-24
  • 打赏
  • 举报
回复
什么数据结构啊,为什么不给个订单号之类的做关联呢。
  • 打赏
  • 举报
回复
引用 4 楼 Dear SQL 的回复:
select enddate,payTAmt=sum(payTAmt),sumprice=sum(sumprice)
	,diff=isnull(sum(payTAmt),0)-isnull(sum(sumprice),0)
from (
	select enddate=cast(enddate as date),payTAmt,sumprice=0
	from 订单表
	union all
	select enddate=cast(tmdate as date),payTAmt=0,sumprice
	from 金库表表
) a
group by enddate
这个我 也写了个, 但是union all 和 full join 我选择了 full join 我不太喜欢 union
Dear SQL(燊) 2019-03-19
  • 打赏
  • 举报
回复
select enddate,payTAmt=sum(payTAmt),sumprice=sum(sumprice)
	,diff=isnull(sum(payTAmt),0)-isnull(sum(sumprice),0)
from (
	select enddate=cast(enddate as date),payTAmt,sumprice=0
	from 订单表
	union all
	select enddate=cast(tmdate as date),payTAmt=0,sumprice
	from 金库表表
) a
group by enddate
  • 打赏
  • 举报
回复
我的写法 select isnull(a.PayTAmt,0) PayTAmt,isnull(a.Trndate,b.Trndate) Trndate ,isnull(b.SumPrice,0) SumPrice,isnull(a.PayTAmt,0) - isnull(b.SumPrice,0) DiffPrice from( select SUM(PayTAmt) PayTAmt, CONVERT(varchar(20), EndDate, 111) Trndate from OrderM group by CONVERT(varchar(20), EndDate, 111)) a full join ( select CONVERT(varchar(20), Trndate, 111) Trndate,SUM(SumPrice) SumPrice from StockOrderM group by CONVERT(varchar(20), Trndate, 111)) b on CONVERT(varchar(20), a.Trndate, 111)=CONVERT(varchar(20), b.Trndate, 111) 有没有更简单的写法 比如 不用full join
  • 打赏
  • 举报
回复
出货表 结果
  • 打赏
  • 举报
回复
出货表

34,575

社区成员

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

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