需要 sql 查询这种格式
need the sql query this format
我有一个这样的 sql 查询:
select T2.ItemCode,
T2.ItemName,
T1.Quantity,
T2.InvntryUom,
T1.Price
from opor T0
inner join por1 T1 on T1.DocEntry = T0.DocEntry
inner join OITM T2 on T2.ItemCode = T1.ItemCode
where T1.ItemCode = 'V0724-0158'
and month(T0.DocDueDate) in ( 4,5, 6) and year(T0.DocDueDate) = '2016'
输出是这样的:
ItemCode ItemName Quantity InvntryUom Price
-------------------- ---------------------------------------------------------------------------------------------------- --------------------------------------- ---------------------------------------------------------------------------------------------------- ---------------------------------------
V0724-0158 SIS'88 80326 Brown Sugar 1kg Bag (Arabic) SBRADK124C - PET12/LLDPE60, 410mm x 1000m x 8-9C 29.000000 Roll 232.390000
V0724-0158 SIS'88 80326 Brown Sugar 1kg Bag (Arabic) SBRADK124C - PET12/LLDPE60, 410mm x 1000m x 8-9C 29.000000 Roll 232.390000
V0724-0158 SIS'88 80326 Brown Sugar 1kg Bag (Arabic) SBRADK124C - PET12/LLDPE60, 410mm x 1000m x 8-9C 10.000000 Roll 234.740000
我有另一个比较查询:
SELECT '2015' as year,
T0.ItemCode as 'Item Code',
T1.Price As 'Base Price',
T2.Amount As 'Box qty',
T2.Price As 'Box Price'
FROM OITM T0
Inner Join SPP1 T1 on T0.ItemCode=T1.ItemCode
Inner Join SPP2 T2 on T0.ItemCode=T2.ItemCode And T1.LINENUM=T2.SPP1LNum
Where T0.ItemCode ='V0724-0158'
and FromDate ='20150101'
and ToDate ='20160315'
输出是这样的:
year Item Code Base Price Box qty Box Price
---- -------------------- --------------------------------------- --------------------------------------- ---------------------------------------
2015 V0724-0158 242.000000 16.000000 242.000000
2015 V0724-0158 242.000000 25.000000 239.580000
2015 V0724-0158 242.000000 50.000000 235.000000
2015 V0724-0158 242.000000 100.000000 230.000000
在第一个查询中,数量列应该与第二个查询的箱子数量进行比较,下面是与第二个查询检查的条件
for eg: if quantity is 10 the box price is 242
if quantity is 29 the box price is 239.58
示例输出结果将是这样的,带有名为 box price 的 tan 额外列:
ItemCode ItemName Quantity InvntryUom Price Box Price
-------------------- ---------------------------------------------------------------------------------------------------- --------------------------------------- ---------------------------------------------------------------------------------------------------- ----------------------------------------------------
V0724-0158 SIS'88 80326 Brown Sugar 1kg Bag (Arabic) SBRADK124C - PET12/LLDPE60, 410mm x 1000m x 8-9C 29.000000 Roll 232.390000 239.58
V0724-0158 SIS'88 80326 Brown Sugar 1kg Bag (Arabic) SBRADK124C - PET12/LLDPE60, 410mm x 1000m x 8-9C 29.000000 Roll 232.390000 239.58
V0724-0158 SIS'88 80326 Brown Sugar 1kg Bag (Arabic) SBRADK124C - PET12/LLDPE60, 410mm x 1000m x 8-9C 10.000000 Roll 234.740000 242
请问能否在sql查询中实现,如果可以,请问如何实现。
我不太确定数量和价格之间有什么逻辑关系,但是你可以通过以下方式添加条件:
select
T2.ItemCode,
T2.ItemName,
T1.Quantity,
T2.InvntryUom,
T1.Price,
case T1.Quantity
when 10 then 242
when 29 then 239.58
else 'unknown'
end
from
opor T0
inner join por1 T1 on T1.DocEntry = T0.DocEntry
inner join OITM T2 on T2.ItemCode = T1.ItemCode
where
T1.ItemCode = 'V0724-0158'
and month(T0.DocDueDate) in (4,5,6)
and year(T0.DocDueDate) = '2016'
我有一个这样的 sql 查询:
select T2.ItemCode,
T2.ItemName,
T1.Quantity,
T2.InvntryUom,
T1.Price
from opor T0
inner join por1 T1 on T1.DocEntry = T0.DocEntry
inner join OITM T2 on T2.ItemCode = T1.ItemCode
where T1.ItemCode = 'V0724-0158'
and month(T0.DocDueDate) in ( 4,5, 6) and year(T0.DocDueDate) = '2016'
输出是这样的:
ItemCode ItemName Quantity InvntryUom Price
-------------------- ---------------------------------------------------------------------------------------------------- --------------------------------------- ---------------------------------------------------------------------------------------------------- ---------------------------------------
V0724-0158 SIS'88 80326 Brown Sugar 1kg Bag (Arabic) SBRADK124C - PET12/LLDPE60, 410mm x 1000m x 8-9C 29.000000 Roll 232.390000
V0724-0158 SIS'88 80326 Brown Sugar 1kg Bag (Arabic) SBRADK124C - PET12/LLDPE60, 410mm x 1000m x 8-9C 29.000000 Roll 232.390000
V0724-0158 SIS'88 80326 Brown Sugar 1kg Bag (Arabic) SBRADK124C - PET12/LLDPE60, 410mm x 1000m x 8-9C 10.000000 Roll 234.740000
我有另一个比较查询:
SELECT '2015' as year,
T0.ItemCode as 'Item Code',
T1.Price As 'Base Price',
T2.Amount As 'Box qty',
T2.Price As 'Box Price'
FROM OITM T0
Inner Join SPP1 T1 on T0.ItemCode=T1.ItemCode
Inner Join SPP2 T2 on T0.ItemCode=T2.ItemCode And T1.LINENUM=T2.SPP1LNum
Where T0.ItemCode ='V0724-0158'
and FromDate ='20150101'
and ToDate ='20160315'
输出是这样的:
year Item Code Base Price Box qty Box Price
---- -------------------- --------------------------------------- --------------------------------------- ---------------------------------------
2015 V0724-0158 242.000000 16.000000 242.000000
2015 V0724-0158 242.000000 25.000000 239.580000
2015 V0724-0158 242.000000 50.000000 235.000000
2015 V0724-0158 242.000000 100.000000 230.000000
在第一个查询中,数量列应该与第二个查询的箱子数量进行比较,下面是与第二个查询检查的条件
for eg: if quantity is 10 the box price is 242
if quantity is 29 the box price is 239.58
示例输出结果将是这样的,带有名为 box price 的 tan 额外列:
ItemCode ItemName Quantity InvntryUom Price Box Price
-------------------- ---------------------------------------------------------------------------------------------------- --------------------------------------- ---------------------------------------------------------------------------------------------------- ----------------------------------------------------
V0724-0158 SIS'88 80326 Brown Sugar 1kg Bag (Arabic) SBRADK124C - PET12/LLDPE60, 410mm x 1000m x 8-9C 29.000000 Roll 232.390000 239.58
V0724-0158 SIS'88 80326 Brown Sugar 1kg Bag (Arabic) SBRADK124C - PET12/LLDPE60, 410mm x 1000m x 8-9C 29.000000 Roll 232.390000 239.58
V0724-0158 SIS'88 80326 Brown Sugar 1kg Bag (Arabic) SBRADK124C - PET12/LLDPE60, 410mm x 1000m x 8-9C 10.000000 Roll 234.740000 242
请问能否在sql查询中实现,如果可以,请问如何实现。
我不太确定数量和价格之间有什么逻辑关系,但是你可以通过以下方式添加条件:
select
T2.ItemCode,
T2.ItemName,
T1.Quantity,
T2.InvntryUom,
T1.Price,
case T1.Quantity
when 10 then 242
when 29 then 239.58
else 'unknown'
end
from
opor T0
inner join por1 T1 on T1.DocEntry = T0.DocEntry
inner join OITM T2 on T2.ItemCode = T1.ItemCode
where
T1.ItemCode = 'V0724-0158'
and month(T0.DocDueDate) in (4,5,6)
and year(T0.DocDueDate) = '2016'