2016-03-29 29 views
0

I olan aşağıdaki sonuçlar (geçici tablo):Toplam Bilgileri

Product Side(buy/sell) TotalQuantity AverageWeightedPrice Cost 
Prod1 1    100   120     12,000 
Prod1 2    -50   130     -6,500 
Prod2 
Prod2 

Yani ve benzeri birden çok ürün için.

(a GroupBy ile) için konsolide: belirli koşullar olmadıkça

Product Side(buy/sell) TotalQuantity AverageWeightedPrice Cost 
Prod1 1    50    110     5,500 
Prod2 

I konsolide sonucu:

  1. yan 1 ve 2, aynı miktar olduğunda. Konsolide miktar 0 olacak ve artık AverageWeightedPrice hesaplayamayacaktım. TotalQuantity ve Maliyet, ters çevrilmiş değerlerin zaman
  2. konsolide miktarı = 0, diğer koşul, yani, (ve Miktarı + ve Maliyet zaman)

bu ise miktar pozitif ve maliyet negatif olduğunda Belirli koşullar altında, UNcosolidated verisini geri almak istiyorum.

Aynı anda konsolide ve konsolide olmayan veriler dışında sorun yaşıyorum.

+0

Bir grupla bir if/when ifadeleri yapamayacağınızdan, groupby ile bir 'having' ifadesi oluşturabileceğimi ve daha sonra tablolara katılabileceğimi önerim var. Şimdi buna bakacağım ama yine de hoşgeldin önerileri. –

+0

Kullandığınız sorguyu ekleyebilir misiniz? – Marco

cevap

0

Bu, SQL'in gerçekten iyi olduğu bir şey değil.

Bu sonucun salt sql ile üretilmesi tamamen mümkündür, ancak çözüm çok karmaşıktır ve sql bu gibi karmaşık görevler ve herhangi bir sözdizimi üzerinde herhangi bir optimizasyon sağlamadığından, bunun için başka bir seçeneğiniz varsa bunu yapmamalısınız usta zor olabilir. Sorguyu korumak da gelecekte zor bir görev olduğunu kanıtlayabilir.

Böyle durumlarda, yalnızca veriyi almak için sql kullanmalı ve sonra da programlama dilini veya sorguyu yürüten uygulamayı kullanarak biçimlendirmeniz (birleştirmeniz) gerekir.

+0

Konsolidasyondan sonra beyanları yapmayı düşünüyordum. çizgisinde şey: .. TotalQuantity sahip olmayan aynı ters olan 0 olup I ürünün konsolide yeni bir tablo olacaktır değerleri, daha sonra burada ürün olup, konsolide sorguda gevşek sorguda katılması. –