Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Двойное словие в конструкции iif  [new]
Laikon
Member

Откуда:
Сообщений: 24
Всем доброго времени суток! Прошу помочь в одной конструкции. Суть проблемы:

select
...
sum(iif(rd.QTYRECEIVED=p.pallet,1,0)) as pal
...

from 
...


В этой строчке считается сумма записей в таблице исходя из справочника. Т.е. если по количество rd.QTYRECEIVED равно значению в справочнике p.pallet, то к сумме добавляется единица. Но! Записи rd.QTYRECEIVED могут повторяться, а мне нужно суммировать только те, у которых в другой колонке (колонка TOID) значения уникальны. Т.е. если у записи в колонке TOID значение уникальное И количество равно справочнику, тогда добавлять единицу.
Проблема в том что все это нужно указать в конструкции iif в самом блоке SELECT до описания таблиц, откуда брать эти значения.

Надеюсь проблему объяснил понятно...хотя получилось как-то сумбурно...Заранее спасибо!
17 май 19, 08:32    [21886809]     Ответить | Цитировать Сообщить модератору
 Re: Двойное словие в конструкции iif  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6794
Laikon,
не очень понятл, но наверное
автор
COUNT(DISTINCT CASE WHEN rd.QTYRECEIVED=p.pallet THEN QTYRECEIVED ELSE NULL END)
17 май 19, 08:36    [21886812]     Ответить | Цитировать Сообщить модератору
 Re: Двойное словие в конструкции iif  [new]
Laikon
Member

Откуда:
Сообщений: 24
TaPaK, я так тоже пытался, но результат немного не тот. Если использовать distinct, то этот distinct должен смотреть на колонку TOID в этой же таблице и только после этого суммировать значения по колонке rd.qtyreceived. И я как раз не могу придумать как это прописать
17 май 19, 08:50    [21886821]     Ответить | Цитировать Сообщить модератору
 Re: Двойное словие в конструкции iif  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6794
Laikon,

COUNT(DISTINCT CASE WHEN rd.QTYRECEIVED=p.pallet THEN TOID ELSE NULL END)
17 май 19, 08:51    [21886823]     Ответить | Цитировать Сообщить модератору
 Re: Двойное словие в конструкции iif  [new]
Laikon
Member

Откуда:
Сообщений: 24
TaPaK, эм.... исходя из этого запроса получается, что при выполнении условия rd.QTYRECEIVED=p.pallet значение будет TOID ?? Или я как-то не так понял?
17 май 19, 09:09    [21886849]     Ответить | Цитировать Сообщить модератору
 Re: Двойное словие в конструкции iif  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6794
Laikon,

Количество уникальных TOID для условия rd.QTYRECEIVED=p.pallet
17 май 19, 09:11    [21886852]     Ответить | Цитировать Сообщить модератору
 Re: Двойное словие в конструкции iif  [new]
aleks222
Member

Откуда:
Сообщений: 849
Laikon
Всем доброго времени суток! Прошу помочь в одной конструкции. Суть проблемы:

select
...
sum(iif(rd.QTYRECEIVED=p.pallet,1,0)) as pal
...

from 
...


В этой строчке считается сумма записей в таблице исходя из справочника. Т.е. если по количество rd.QTYRECEIVED равно значению в справочнике p.pallet, то к сумме добавляется единица. Но! Записи rd.QTYRECEIVED могут повторяться, а мне нужно суммировать только те, у которых в другой колонке (колонка TOID) значения уникальны. Т.е. если у записи в колонке TOID значение уникальное И количество равно справочнику, тогда добавлять единицу.
Проблема в том что все это нужно указать в конструкции iif в самом блоке SELECT до описания таблиц, откуда брать эти значения.

Надеюсь проблему объяснил понятно...хотя получилось как-то сумбурно...Заранее спасибо!


select
...
sum(iif(rd.QTYRECEIVED=p.pallet,1,0)) as pal
...

from  
aTable as t
where not exists( select * from aTable as t1 where t1.TOID = t.TOID and t1.ИдентификаторСтроки <> t.ИдентификаторСтроки )
17 май 19, 09:34    [21886876]     Ответить | Цитировать Сообщить модератору
 Re: Двойное словие в конструкции iif  [new]
Laikon
Member

Откуда:
Сообщений: 24
aleks222, вариант не подойдет, так как я описал выше, что нужно все реализовать в блоке SELECT
17 май 19, 11:23    [21887036]     Ответить | Цитировать Сообщить модератору
 Re: Двойное словие в конструкции iif  [new]
Laikon
Member

Откуда:
Сообщений: 24
TaPaK, вроде получилось... Спасибо огромное!!
17 май 19, 11:25    [21887038]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить