SQL语句实现分别列出每天销售数量

例如:SELECTT0.[ItemCode],T0.[Dscription],T0.[Quantity],T0.[PriceBefDi],T0.[DocDate]FROM... 例如:
SELECT T0.[ItemCode], T0.[Dscription], T0.[Quantity], T0.[PriceBefDi], T0.[DocDate] FROM INV1 T0
WHERE T0.[DocDate] >=(select DATEADD(mm,DATEDIFF(mm,0,getdate()),0))

实现: 物料编号 物料描述 销售总数(本月1号至今) 销售单价 销售日期
现在需要在后面增加多列,每列根据T0.[Quantity] 销售数量增加条件,
例如: [本月1号销售数量] 、[本月2号销售数量] ... ... [本月31号销售数量]
因为原T0.[Quantity]已存在条件,所要增加的列所显示的数量则需要重新确定条件
谢谢高手帮忙解答
表名为: INV1
需要提取的列为: Quantity -- 销售数量
在例句原有的表格里,增加多列,每列显示的内容是Quantity 条件为本月每天的数值
也就是说,需要列出每天的销售数量Quantity 从INV1表里,类似于子查询
---晕啊~就是在一列都显示出来,显示每个物料的销售数量
比如: 商品名 本月总销售数量 1号销售数量 2号销售数量 .... 30号销售数量
A 30 10 15 5
B 20 5 5 10
C 80 25 15 40
每一列都显示出对应物料的销售数量,没有则为0

按我的理解就是主要是多条件的实现,类似子查询
条件用 dateadd(dd,-datepart(dd,getdate())+1,getdate()) 来实现
例如第一天就是 (select DATEADD(mm,DATEDIFF(mm,0,getdate()),0))
第二天就是 (select DATEADD(mm,DATEDIFF(mm,0,getdate()),1))
----在线等着各位高手给个意见啊
展开
 我来答
边研雁匹2M
2012-02-02 · TA获得超过266个赞
知道答主
回答量:174
采纳率:0%
帮助的人:114万
展开全部
那得你自己先判断 1号,2号的时间段
如果是 1号0 点到 2号0 为1号数据
那么直接取时间到日期
substring(Convert(VARCHAR(30), DocDate, 120),1,10)
然后用这个时间做GROUP BY
这样日期别销售数据就出来了
然后行转列
*如果是几点到转天几点 就在上面时间上减去对应的时间 后做 GROUP BY
追问
谢谢,我需要取的是每一天整天的数据,不需要精确到小时,按天即可。
我还是取的T0.[Quantity]这一列的值,类似复制它的数据,但是他的条件变成了
追答
对呀 条件变成是 1 号 2号 3 号。。。。。了
那么你的日期条件就是 substring(Convert(VARCHAR(30), DocDate, 120),1,10)--取年月日
用上面这个值去 GROUP BY 就得到商品别日期别销售数据了。
再来个 union all 商品别总销售数据
就可以得到商品别日期别总销售数据 + 各日期数据
但得到的 “行”的数据
需要转成“列”数据
因为你的 ROW 比较多 所以只能是 存储过程 加 动态语句去实现了
yaogogo2010
2012-01-30 · TA获得超过2550个赞
知道小有建树答主
回答量:1187
采纳率:0%
帮助的人:1314万
展开全部
declare @i int
set @i = 1
while @i <=31
begin
select case when DAY(DocDate) = @i THEN sum(quantity) END AS cast(@i as varchar(2)) +'号销售数量'
from INV1
set @i = @i + 1
end

好像不怎么对。。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
raymonshi
2012-01-30 · TA获得超过490个赞
知道小有建树答主
回答量:416
采纳率:100%
帮助的人:269万
展开全部
是每天查询一次?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
MAFIA幽冥
2012-01-30 · TA获得超过878个赞
知道小有建树答主
回答量:1701
采纳率:0%
帮助的人:553万
展开全部
没明白...你现在的语句已经是用日期做条件了,这个 本月1号销售数量 你想怎么显示出来呢?求和?还是一条一条的?
更多追问追答
追问
是对应每个物料,显示的数量是条件里选择的日期,如果哪天没销售,则为空白或者为0
我的意思是总共有31列,每列显示每天的数量情况
追答
这...推荐你去研究一下sql的列转行,先查询每天的销售数量,然后用列转行就是你这个东西了,那个我不太熟,帮不上你.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
二牛资讯
2012-01-30 · TA获得超过736个赞
知道小有建树答主
回答量:631
采纳率:50%
帮助的人:610万
展开全部
没看明白。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 3条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式