请问高手个子查询的问题?

nullarea 2003-03-24 08:53:25
现在有两个表,一个油品编码表PRODUCTTAB,用得着的就是两个字段PRODUCTID(油品编码),PRODUCTNAME(油品名称),一个油品入库表STOCKTAB,主要字段是PRODUCTID,STOCKTIME(入库时间),BILLNUMBER(提油单号),STOCKAMOUNT(入库数量),VAT(BIT类型字段)判断提油单是否结算,现在要查询的是某月前,没结算的提油单油品的总数量,某月内没结算的提油单油品的总数量,某月内和某月以前结算的提油单油品总数量,总数量都是分油品汇总,我的语句是,
SELECT PRODUCTNAME,LASTAMOUNT=(SELECT SUM(STOCKAMOUNT) FROM STOCKTAB S,PRODUCTTAB P WHERE S。PRODUCTID=P。PRODUCTID AND STOCKTIME<STARTTIME AND VAT=0 ),NOWAMOUNT=(SELECT SUM(STOCKAMOUNT) FROM STOCKTAB S,PRODUCTTAB P WHERE S。PRODUCTID=P。PRODUCTID AND STOCKTIME>STARTTIME AND
STOCKTIME<ENDTIME AND VAT=0),AMOUNT==(SELECT SUM(STOCKAMOUNT) FROM STOCKTAB S,PRODUCTTAB P WHERE S。PRODUCTID=P。PRODUCTID AND STOCKTIME<ENDTIME AND VAT=0) FROM Producttab group by PRODUCTNAME
大家帮我看一下问题出在那里
...全文
28 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
nullarea 2003-03-25
  • 打赏
  • 举报
回复
谢谢大家,我已经自己解决问题了,不过还是要感谢大家
yonghengdizhen 2003-03-25
  • 打赏
  • 举报
回复
现在有两个表,一个油品编码表PRODUCTTAB,用得着的就是两个字段PRODUCTID(油品编码),PRODUCTNAME(油品名称),一个油品入库表STOCKTAB,主要字段是PRODUCTID,STOCKTIME(入库时间),BILLNUMBER(提油单号),STOCKAMOUNT(入库数量),VAT(BIT类型字段)判断提油单是否结算,现在要查询的是某月前,没结算的提油单油品的总数量,某月内没结算的提油单油品的总数量,某月内和某月以前结算的提油单油品总数量,总数量都是分油品汇总


select PRODUCTNAME,(select sum(STOCKAMOUNT) from STOCKTAB where PRODUCTID=PT.PRODUCTID and VAT=0 and datediff(month,STOCKTIME,<日期参数>)<0),
(select sum(STOCKAMOUNT) from STOCKTAB where PRODUCTID=PT.PRODUCTID and VAT=1 and datediff(month,STOCKTIME,<日期参数>)<=0)
from PRODUCTTAB PT
pengdali 2003-03-24
  • 打赏
  • 举报
回复
多了一个,号!哈哈。。。
SELECT PRODUCTNAME,LASTAMOUNT,NOWAMOUNT,AMOUNT
FROM (
SELECT PRODUCTID,SUM(STOCKAMOUNT) AS AMOUNT,
SUM(CASE WHEN STOCKTIME<STARTTIME THEN STOCKAMOUNT ELSE 0 END) AS LASTAMOUNT,
SUM(CASE WHEN STOCKTIME>=STARTTIME THEN STOCKAMOUNT ELSE 0 END) AS NOWAMOUNT
WHERE VAL=0 AND STOCKTIME<ENDTIME
GROUP BY PRODUCTID
) AS S,PRODUCTTAB P
WHERE S.PRODUCTID=P.PRODUCTID
CSDNM 2003-03-24
  • 打赏
  • 举报
回复
SELECT PRODUCTNAME,LASTAMOUNT,NOWAMOUNT,AMOUNT
FROM (
SELECT PRODUCTID,SUM(STOCKAMOUNT) AS AMOUNT,
SUM(CASE WHEN STOCKTIME<STARTTIME THEN STOCKAMOUNT ELSE 0 END) AS LASTAMOUNT,
SUM(CASE WHEN STOCKTIME>=STARTTIME THEN STOCKAMOUNT ELSE 0 END) AS NOWAMOUNT,
WHERE VAL=0 AND STOCKTIME<ENDTIME
GROUP BY PRODUCTID
) AS S,PRODUCTTAB P
WHERE S.PRODUCTID=P.PRODUCTID

22,300

社区成员

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

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