2016-03-21 16 views
-1

Prosedürümdeki iki tablodan 'salevalue' toplamını/altını almak istiyorum. Satılık 1 makbuzları, 2. iadeleri vardır. Ama fikirlerde kayboldum.TSQL - İki tablodan toplamı veya alt randevuyu alın

SELECT * 
    FROM @possale1 

    SELECT * 
    FROM @possale2 

    SELECT sum(salevalue) AS S1 
    FROM @possale1 

    SELECT sum(salevalue)*-1 AS S2 
    FROM @possale2 

    select sum(sum(a.salevalue)-sum(b.salevalue)) 
    from @possale1 a 
    inner join @possale2 b on a.receiptdate=b.receiptdate 
+1

"Ben fikirlere kayboldum" cevaplanması gereken bir soru gerçekten değil. Lütfen mantığınızı açıklığa kavuşturmaya çalışın. Belki düşüncelerinizi yazarak doğru cevaba kendiniz gelebilirsiniz. – Jolta

+0

Kötüyüm, daha hassas olmadı. Makbuzları ve Oracle'dan OpenQuery aracılığıyla döndüren iki ayrı tabloya depolanmış bir yordamım var. Şimdi bunlardan tablolara (makbuzlar - iadeler = bakiye) bir alt değer almak istiyorum. Arvo sorumu sorguladı ve bir çekicilik gibi çalışır. – headder

cevap

1

sonraki yapmalıdır:

select ((SELECT sum(salevalue) FROM @possale1) - (SELECT sum(salevalue) FROM @possale2)) as balance 
+0

Çok teşekkür ederim, bu bana istediğim bir alt bilgi verdi. – headder

0

Bunun için mi çalışıyorsunuz? toplama olmadan

SELECT SUM(ISNULL(a.salevalue,0) - ISNULL(b.salevalue,0)) 
FROM @possale1 a FULL OUTER JOIN @possale2 b on a.receiptdate=b.receiptdate 
+0

Yalnızca her iki tablonun her tarih için tam olarak 1 satırı varsa çalışır. – jumxozizi