Как создать дубликаты разрешенных атрибутов

Я использую ваши две таблицы с примерами (таблица 1 = заказы, таблица 2 = товары). Вот как можно найти номера заказов, которые содержат элементы двора, но не содержат складские элементы:

select o.orderno
from orders o
join items i on i.itemno = o.itemno
group by o.orderno
having count(case when i.location = 'Yard' then 1 end) > 0
   and count(case when i.location = 'Warehouse' then 1 end) = 0;

Если вы хотите показать завершенные заказы, используйте вышеуказанный запрос в подзапросе, например:

[111 ]

Если вы хотите вместо этого агрегировать по заказу, вы можете соответствующим образом изменить запрос, например:

select
  o.orderno,
  count(*) as number_of_positions,
  sum(o.amount) as number_of_pieces,
  sum(o.amount * i.weight) as total_weight
from orders o
join items i on i.itemno = o.itemno
group by o.orderno
having count(case when i.location = 'Yard' then 1 end) > 0
   and count(case when i.location = 'Warehouse' then 1 end) = 0
order by o.orderno;

И если вы хотите агрегировать по элементу, вам может понадобиться подзапрос плюс отдельная агрегация.

87
задан numaroth 2 March 2016 в 18:15
поделиться

4 ответа

Палка a AttributeUsage припишите на свой класс Атрибута (да, это - полный рот), и набор AllowMultiple кому: true:

[AttributeUsage(AttributeTargets.Method, AllowMultiple = true)]
public sealed class MyCustomAttribute: Attribute
171
ответ дан 24 November 2019 в 07:44
поделиться

AttributeUsageAttribute;-p

[AttributeUsage(AttributeTargets.Method, AllowMultiple = true)]
public class MyAttribute : Attribute
{}

Обратите внимание, однако, на это при использовании ComponentModel (TypeDescriptor), это только поддерживает один экземпляр атрибута (на тип атрибута) на участника; необработанное отражение поддерживает любое число...

19
ответ дан 24 November 2019 в 07:44
поделиться

Как альтернатива, думайте о перепроектировании Вашего атрибута допускать последовательность.

[MyCustomAttribute(Sequence="CONTROL,ALT,SHIFT,D")]

или

[MyCustomAttribute("CONTROL-ALT-SHIFT-D")]

затем проанализируйте значения для конфигурирования атрибута.

Для примера этого выезда AuthorizeAttribute в ASP.NET исходный код MVC по www.codeplex.com/aspnet.

3
ответ дан 24 November 2019 в 07:44
поделиться

Решение Антона верное, но есть еще одна проблема .

Короче говоря, если ваш настраиваемый атрибут не переопределяет TypeId, доступ к нему осуществляется через PropertyDescriptor.GetCustomAttributes () вернет только один экземпляр вашего атрибута.

12
ответ дан 24 November 2019 в 07:44
поделиться
Другие вопросы по тегам:

Похожие вопросы: