2016-07-21 14 views
0

ich eine SQL-Abfrage wie folgt aussehen:müssen die SQL-Abfrage dieses Format

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' 

Ausgabe ist wie folgt:

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 

Ich habe eine andere Vergleichs query:

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' 

Der Ausgang ist wie folgt:

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 

In der ersten Abfrage der quanity Spalte mit der Box quanitty der zweiten Abfrage unter vergleichen sollte, ist der Zustand mit der zweiten Abfrage zu überprüfen

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

Die Probe Ausgabeergebnis wie diese mit tan zusätzliche Spalte namens Box sein wird Preis:

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 

Bitte helfen sie mir, ob es in sQL-Abfrage erreicht werden kann, wenn ja, wie mir helfen, es zu tun.

Antwort

0

Ich bin mir nicht ganz sicher, welche logische Beziehung zwischen Menge und Preis ist, aber Sie können auf folgende Weise bedingtes Material addieren:

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'