点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
您好,SQL专家!
我想实现以下目标:
查询,以便我的仓库经理可以说"向我显示我选择的行中的项目列表(例如A和B) 过道),以及应该有多少库存。
这将有助于他减少部分库存。
到目前为止,我有
选择T1。[ItemCode] AS'项目代码',T1。[ItemName] AS'项目名称',T0。[OnHand] AS'有库存',T2。[SL1Code] AS'行',T2。[ SL2Code] AS [Location] from [dbo]。[OITW] T0内连接[dbo]。[OITM] T1 ON T1。[ItemCode] = T0。[ItemCode]内连接[dbo]。[OBIN] T2 ON T2。 [SpcItmCode] = T1。[ItemCode] INNER JOIN [dbo]。[OITW] T3在T3上。[DftBinAbs] = T2。[AbsEntry]
这根本不起作用:-(任何人都可以帮忙 ?
提前谢谢
专家-在您的帮助下以及使用Gordon Du的书进行一些修改之后,我提出了以下查询,该查询在SAP V9中有效:
选择t0.ItemCode,t5.ItemName,t4.OnHandQty,t2 .BinCode,t2.sl1code,t2.SL2Code,t0.WhsCode
来自[dbo]。[OITW] T0左加入了[dbo]。[OITM] T1打开T1。[ItemCode] = T0。[ ItemCode]
内部联接OIBQ t4在t0.ItemCode = t4.ItemCode和T0.WhsCode = t4.WhsCode
左连接JOIN [dbo]。[OITW] T3在T3.ItemCode上 = T0.ItemCode
内部加入[dbo]。[OBIN] T2在t2.AbsEntry = t3.dftbinabs
内部加入OITM t5在t0.ItemCode = t5.ItemCode p>
T2。[SL1Code]在'[%0]'和'[%1]'
之间按t2.sl1code,t2.SL2Code,t0.ItemCode
< p>谢谢嗨,蒂姆,
您正在使用9.0 PL07吗?
感谢与问候,
Nagarajan
嗨,蒂姆,
尝试:
选择T1 。[ItemCode] AS'项目代码',T1。[ItemName] AS'项目名称',T0。[OnHand] AS'库存中,T2。[SL1Code] AS'行',T2。[SL2Code] AS'位置 'FROM [dbo]。[OITW] T0左JOIN [dbo]。[OITM] T1到T1。[ItemCode] = T0。[ItemCode]左JOIN [dbo]。[OBIN] T2 ON T2。[SpcItmCode] = T1 。[ItemCode]左JOIN [dbo]。[OITW] T3在T3上。[DftBinAbs] = T2。[AbsEntry]
WHERE T2。[SL2Code]在'[%0]'和'[% 1]'
谢谢
Gordon
嗨,
尝试一下: p>
选择T1。[ItemCode] AS'项目代码',T1。[ItemName] AS'项目名称',T0。[OnHand] AS'有库存',T2。[SL1Code] AS'行',T2 。[SL2Code] AS [位置]来自[dbo]。[OITW] T0左联接[dbo]。[OITM] T1接通T1。[ItemCode] = T0。[ItemCode]左联接JOIN [dbo]。[OBIN] T2接通 T2。[SpcItmCode] = T1。[ItemCode]左JOIN [dbo]。[OITW] T3在T3上。[DftBinAbs] = T2。[AbsEntry]
WHERE T2。[SL1Code]在'[% 0]'和'[%1]'
感谢与问候,
Nag arajan
嗨,蒂姆,
我给你一份夏季总结报告。 希望对您有帮助。
/*从[dbo]中选择。[OINM] T10 */
声明@fromdate datetime,@todate datetime
SET @fromdate =/* T10.DocDate */'[%0]'
SET @todate =/* T10.DocDate */'[%1]'
-SET @fromdate =/* T10.DocDate */'20100501'
-SET @todate =/* T10.DocDate */'20100531'
/*从[dbo]中选择。[OITM] T11 */
声明@itemFrom nvarchar(40),@itemTo nvarchar(40)
SET @itemFrom =/* T11.ItemCode */'[%2]'
SET @itemTo =/* T11.ItemCode */'[%3]'
/*从[dbo]中选择。[OITB] T12 */
声明@grp smallint
SET @grp =/* T12.ItmsGrpCod */'[%4]'
-SET @grp =/* T12.ItmsGrpCod */'102'
if(Len(IsNull(@itemFrom,''))= 0)
设置@itemFrom = NULL
if(Len(IsNull(@itemTo,''))= 0)
设置@itemTo = NULL
选择Inv.Itemcode,Inv.ItemName,Inv.ItmsGrpNam
-期初余额-
,sum((tdate1 <@fromdate然后RECD-ISSUED ELSE 0 End的情况)为'Opening Qty'。
,InvntryUom为''
,sum((tdate1 <@fromdate然后RECD-已发行ELSE 0结尾的情况))*(从oitm处选择isull(Sweight1,0)WHERE oitm.ItemCode = Inv.Itemcode)作为'Opening Wt'
,sum((tdate1 <@fromdate然后TransValue ELSE 0 End的情况)为'初始值'
-+ sum((如果tdate1 <@fromdate AND发出> 0则TransValue ELSE 0 End))
-,sum((当tdate1 <@fromdate AND Recd> 0 AND在(13,14,15,16,17,18,19,20,21,59,60)中转换时的情况,然后TransValue ELSE 0 End ))+
-sum((当tdate1 <@fromdate AND发出的情况> 0 AND在(13,14,15,16,17,18,19,20,21,59,60)中转换类型,然后TransValue ELSE 0结束) )作为"初始价值"
-已收到-
,(sum(((当Recd> 0 AND在(18,19,20,21)和tdate1在@fromdate和@todate之间转换然后RECD ELSE 0 End的情况下转换))-
sum((当Issued> 0 AND在(18,19,20,21)中转换并且在@fromdate和@todate之间的tdate1然后在ELSE 0结束时进行转换的情况))'p'
,InvntryUom为''
,sum((当Recd> 0 AND Transtype <> 67 AND tdate1在@fromdate和@todate之间然后RECD ELSE 0 End的情况下))*(从oitm中选择isull(Sweight1,0)在oitm.ItemCode = Inv。 Itemcode)为" Recd Wt"
,(sum(((当Recd> 0 AND在@fromdate和@todate之间的(18,19,20,21)AND tdate1中进行转换,然后在ELSE 0 End处进行转换))+
sum((发布时的情况> 0 AND在(18,19,20,21)中转换并且在@fromdate和@todate之间转换tdate1然后再转换ELSE 0 End的值))为'Recd。 价值"
-已发布-
,(sum((发布时的情况> 0 AND TransType in(13,14,15,16,59,60)AND tdate1在@fromdate和@todate之间然后为ISSEED ELSE 0 End))-
sum((当recd> 0 AND TransType in(13,14,15,16,59,60)AND tdate1在@fromdate和@todate之间然后RECD ELSE 0 End的情况下))
>,InvntryUom为''
,sum((tdate1在@fromdate和@todate之间然后为ISSEED ELSE 0 End的情况))*(从oitm WHERE oitm.ItemCode = Inv.Itemcode中选择isull(Sweight1,0)作为'问题Wt' >
,(sum((发布时的情况> 0 AND TransType in(13,14,15,16,59,60)AND tdate1 @fromdate和@todate之间,然后转换值ELSE 0 End))-
sum((recd> 0 AND TransType in(13,14,15,16,59,60)AND tdate1 @fromdate和@todate之间的值,然后转换值ELSE 0 End的情况))作为"已发行值" >
-期末余额-
,sum((tdate1 <= @todate然后RECD-已发行ELSE 0结束的情况)为'结算数量'。
,InvntryUom为''
,sum((tdate1 <= @todate的情况下RECD-已发行ELSE 0结束的情况))*(从oitm WHERE oitm.ItemCode = Inv.Itemcode中选择isull(Sweight1,0)作为'Closing Wt。'
-,sum((tdate1 <= @todate AND Recd> 0 AND在(13,14,15,16,17,18,19,20,21,59,60)中进行转换的情况,然后TransValue ELSE 0 结束))+
-sum((tdate1 <= @todate AND发出的情况> 0 AND在(13,14,15,16,17,18,19,20,21,59,60)中转换类型,然后TransValue ELSE 0结束 ))为"结算价"
,sum((tdate1 <= @todate则TransValue ELSE 0结束的情况)为'结束值'
-sum((tdate1 <= @todate AND发出的情况> 0 AND在(13,14,15,16,17,18,19,20,21,59,60)中转换类型,然后TransValue ELSE 0结束 ))为"结算价"
-检查期末余额-
-,sum((tdate1 <@fromdate然后RECD-ISSUED ELSE 0 End的情况)
-+ sum((如果tdate1位于@fromdate和@todate之间,则RECD ELSE 0结尾)
--sum((tdate1在@fromdate和@todate之间然后为ISSUED ELSE 0 End的情况))为'Check close'
来自-作为"期初余额"
(
以TDate1,SELECT Isnull(DOCDATE,@ fromdate)作为TDate1,ITM.ItemCode,ITM.ItemName,(从OITB的ItmsGrpNam中选择ItmsGrpNam = Itm.ItmsGrpCod) isull(OUTQTY,0)如ISSUED所示,ITM.InvntryUom,oinm.transvalue,oinm.TransType
从(选择*从其他
其中ItmsGrpCod = @grp
和isull(@itemfrom,'')和isull(@itemTo,'ZZZZ')之间的itemCode
)作为ITM
左外部联接OINM
ITM.ItemCode = OINM.ItemCode
在哪里(DOCDATE <= @todate或DOCDATE为NULL)
)为Inv
按Inv.itemcode,Inv.ItemName,Inv.ItmsGrpNam,InvntryUom分组
您还可以根据需要对其进行更新。
Divyanshu ..
Dude非常有用。 谢谢你!
嗨,蒂姆,
我没有9.0版本可以测试上述查询吗? 是否有任何错误消息?
感谢与问候,
Nagarajan
一周热门 更多>