首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >库存管理

库存管理
EN

Stack Overflow用户
提问于 2013-01-08 11:51:55
回答 1查看 342关注 0票数 0

我有两张桌子,INWARDSOUTWARDS。我必须在每个日期向内显示总库存和向外显示每个不同股票的总数,以及该日剩余的股票余额。我不需要按任何日期分组,我只想要库存的总数量。

我将我的查询写成如下:

代码语言:javascript
复制
SELECT
    I.Date as'Date',
    P.ResourceName as 'Item Name',
    P.ResourceRate as'Rate',
    i.Qty as Inwards Quantity',
    (   select qty
        from Outwards_master
        where I.Date=S.Date and I.Nameofitem =S.Nameofitem
    ) as 'Outwards Quantity',
    (   select (sum(i.qty)-sum(S.Qty))
        from Inwards_Master
            inner join Outwards_Master
            on i.Nameofitem=S.Nameofitem
    ) as 'Balance'
From Resource_Master P, Inwards_Master I, Outwards_Master S
WHERE (I.Nameofitem= P.ResourceName) and P.TenderCode = 1

这个查询给了我一个错误。有什么问题吗?

错误是:

Msg 8120、级别16、状态1、第1列'Inwards_Master.Date‘在select列表中无效,因为它既不包含在聚合函数中,也不包含在GROUP BY子句中。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-01-08 12:03:40

根据您的查询,我猜测您想要这样的东西:

代码语言:javascript
复制
SELECT I.Date as Date, 
  P.ResourceName as ItemName,
  P.ResourceRate as Rate,
  i.Qty as InwardsQuantity,
  s.qty as OutwardsQuantity,
  i.qty-S.Qty as Balance,
  O.UnitSymbol As ItemUnit
FROM UnitMaster O
INNER JOIN Resource_Master P
  ON O.UnitCode = P.Unitcode
INNER JOIN Inwards_Master I
  ON I.Nameofitem= P.ResourceName
INNER JOIN Outwards_Master S 
  ON I.Date=S.Date 
  AND I.Nameofitem =S.Nameofitem
WHERE P.TenderCode=1

如果要显示所有项,则可能要使用LEFT JOIN

代码语言:javascript
复制
SELECT I.Date as Date, 
  P.ResourceName as ItemName,
  P.ResourceRate as Rate,
  i.Qty as InwardsQuantity,
  s.qty as OutwardsQuantity,
  i.qty-S.Qty as Balance,
  O.UnitSymbol As ItemUnit
FROM UnitMaster O
INNER JOIN Resource_Master P
  ON O.UnitCode = P.Unitcode
LEFT JOIN Inwards_Master I
  ON I.Nameofitem= P.ResourceName
LEFT JOIN Outwards_Master S 
  ON I.Date=S.Date 
  AND I.Nameofitem =S.Nameofitem
WHERE P.TenderCode=1

编辑#1,根据您的评论,我不太清楚问题是什么,但是您可以尝试在子查询中获取总数量:

代码语言:javascript
复制
SELECT I.Date as Date, 
  P.ResourceName as ItemName,
  P.ResourceRate as Rate,
  i.TotalInQty as InwardsQuantity,
  s.TotalOutQty as OutwardsQuantity,
  i.TotalInQty-S.TotalOutQty as Balance,
  O.UnitSymbol As ItemUnit
FROM UnitMaster O
INNER JOIN Resource_Master P
  ON O.UnitCode = P.Unitcode
LEFT JOIN
(
  select sum(i.Qty) TotalInQty, Nameofitem
  from Inwards_Master I
  group by Nameofitem
) I
  ON I.Nameofitem= P.ResourceName
LEFT JOIN
(
  select sum(s.qty) TotalOutQty, Nameofitem
  from Outwards_Master S 
  group by s.Nameofitem
) S
  ON I.Date=S.Date 
  AND I.Nameofitem =S.Nameofitem
WHERE P.TenderCode=1
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14214339

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档