2016-07-21 3 views
0

У меня есть SQL-запрос, как это:нужен 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 

В первом запросе столбец Quanity следует сравнить с коробкой quanitty второго запроса ниже является условием для проверки со вторым запросом вывода результата

for eg: if quantity is 10 the box price is 242 
     if quantity is 29 the box price is 239.58 

Образца будет, как это с загаром дополнительного столбцом называется полем цена:

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-запросе, если да, помогите мне, как это сделать.

ответ

0

Я не совсем уверен, что логическое отношение существует между количеством и ценой, но вы можете добавить условный материал следующим образом:

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' 
Смежные вопросы