Goran Bibic Ответов: 1

Select values frow оба запроса MS SQL


У меня есть хороший код, но его нужно починить
Код товара, название, третья колонка-закупка, четвертая колонка-продажа, и последняя колонка i разница (5) (колонка 3-колонка 4)
В моем коде результат это просто товар если есть в закупке

Корпус 1
Exmp Coca cola
Закупки 5
Продается 3
Результат 2
Это нормально, проблема следующая.

Случай 2
Если я не добуду кока колу нужно быть следующим
Закупки 0
Продается 2
Результат -2

В моем коде результат пуст в случае 2

Спасибо за помощь

Что я уже пробовал:

SELECT x1.sifra                                              AS 'Šifra',
       x1.naziv                                              AS 'Naziv',
       CONVERT(DECIMAL(16, 2), Sum(Isnull(x1.nabavka, 0)))   AS 'Nab. (kol.)',
       CONVERT(DECIMAL(16, 2), Sum(Isnull(x2.prodaja, 0)))   AS 'Prod. (kol.)',
       CONVERT(DECIMAL(16, 2), Sum(CONVERT(DECIMAL(16, 2), x1.nabavka) - (
                                   Isnull(x2.prodaja, 0) ))) AS 'Stanje (kol.)'
FROM  (SELECT naziv,
              sifra,
              Sum(Isnull(kolicina, 0)) AS Nabavka
       FROM  (SELECT naziv                    AS naziv,
                     sifra,
                     Sum(Isnull(kolicina, 0)) AS kolicina
              FROM   popis_roba
              GROUP  BY naziv,
                        sifra) a
       GROUP  BY naziv,
                 sifra) x1
      LEFT JOIN(SELECT roba,
                       sifra,
                       Sum(Isnull(kolicina, 0)) AS Prodaja
                FROM  (SELECT roba,
                              sifra,
                              Sum(Isnull(kolicina, 0)) AS kolicina
                       FROM   mp_racun_roba
                       GROUP  BY roba,
                                 sifra) b
                GROUP  BY roba,
                          sifra) x2
             ON x2.roba = x1.naziv
WHERE  x1.naziv IS NOT NULL
GROUP  BY x1.naziv,
          x1.sifra 

ZurdoDev

Что? Я понятия не имею, о чем ты просишь.

RamiroX

Вы ищете заявление профсоюза ?

1 Ответов

Рейтинг:
12

Jörgen Andersson

Я думаю, что вы ищете что-то вроде этого:

SELECT  sifra                       AS 'Šifra',
        naziv                       AS 'Naziv',
        Sum(nabavka)                AS 'Nab. (kol.)',
        Sum(prodaja)                AS 'Prod. (kol.)',
        Sum(nabavka) - SUM(prodaja) AS 'Stanje (kol.)'
FROM    (
    SELECT  naziv
           ,sifra
           ,CONVERT(DECIMAL(16, 2),Isnull(kolicina, 0)) AS Nabavka
           ,CONVERT(DECIMAL(16, 2),0)                   AS Prodaja
    FROM    popis_roba
    UNION
    SELECT  roba                                        AS naziv
           ,sifra
           ,CONVERT(DECIMAL(16, 2),0)                   AS Nabavka
           ,CONVERT(DECIMAL(16, 2),Isnull(kolicina, 0)) AS Prodaja
    FROM    mp_racun_roba
    )
GROUP BY naziv,sifra


Maciej Los

5ed!
Йорген, ты еще один волшебник на форуме КП
Первый - для меня - это Ричард Диминг, понимаете: Как выйти из регулярного выражения...[^]).

Ваше здоровье!
Мацей

Jörgen Andersson

Кстати, я не считаю себя на уровне Ричарда. :)

Maciej Los

;)

Goran Bibic

Если не поможет, не комментируйте. Спасибо

Jörgen Andersson

Мне жаль, что мое решение не помогло вам. Я больше не буду тебе помогать.

Goran Bibic

Не для тебя...это для Мацея лоса ...спасибо Вам за решение

CHill60

Это не для вас, чтобы просить членов не комментировать. Комментарий был адресован Йоргену, а не вам. Иногда такие разговоры приводят к лучшим ответам, они определенно приводят к лучшему чувству общности!