Ваш текущий запрос близок, но я бы предложил несколько незначительных изменений, чтобы получить результат. Если вы хотите «сворачивать» данные с помощью JOINs, вам нужно будет различать, какое значение вы хотите вернуть из TableB
в каждом последующем соединении.
Например, если вы хотите вернуть type=rev
, вам нужно указать конкретный фильтр для этого значения. Затем вы сделаете то же самое с type=revision
. Я также предлагаю использовать LEFT JOIN
для присоединения к TableB
, если у вас нет обоих значений type
для каждого Acc_no
, после чего вы все равно вернете данные.
select
a.data,
a.acc_no,
b.type,
b.amount,
bb.type as type_1,
bb.amount as amount_1
from tablea a
left join tableb b
on a.acc_no = b.obj
and b.type = 'rev'
left join tableb bb
on a.acc_no = bb.obj
and bb.type = 'revision';
Вы также можете получить этот результат с помощью некоторой условной агрегации, тогда вам не обязательно присоединяться к TableB
несколько раз:
select
a.data,
a.acc_no,
max(case when b.type = 'rev' then b.type end) as type,
max(case when b.type = 'rev' then b.Amount end) as Amount,
max(case when b.type = 'revision' then b.type end) as type_1,
max(case when b.type = 'revision' then b.Amount end) as Amount_1
from tablea a
left join tableb b
on a.acc_no = b.obj
group by a.data, a.acc_no
order by a.acc_no;
функция ($) {...}
определяет анонимную функцию с формальным параметром $
. $ .fn
относится к свойству fn
объекта, на который ссылается переменная $
.
Как создать изолированную среду для разрешений? Я пытался добавить папку через настройки, но это не сработало.
http://www.macromedia.com/support/documentation/en/flashplayer/help/settings_manager04.html#117502
Я сделал простой, как новый проект. Это полный код.
var mc:MovieClip = new MovieClip ();
var loader:Loader = new Loader ();
loader.contentLoaderInfo.addEventListener (Event.COMPLETE, OnComplete);
var request:URLRequest = new URLRequest ("B.swf");
var variables : URLVariables = new URLVariables();
variables.xml = "test2.xml";
// This line causes the error 2044, if i comment out, it runs fine without FlashVars
request.data = variables;
loader.load (request);
function OnComplete (e:Event)
{
trace ("On Complete");
mc = e.currentTarget.content as MovieClip;
addChild (mc);
}
-121--3832354- Да, в значительной степени. Список < T >
является универсальным классом. Он поддерживает хранение значений определенного типа без заливки в объект или из объекта
(что привело бы к накладным расходам на упаковку/распаковку, если T
является типом значения в случае ArrayList
). ArrayList
просто хранит ссылки на объект
. В качестве общего набора List < T >
реализует универсальный интерфейс IEnumerable < T >
и может быть легко использован в LINQ (без вызова Cast
или OfType
).
ArrayList
относится к дням отсутствия дженериков на C #. Он устарел в пользу списка < T >
. Нельзя использовать ArrayList
в новом коде, предназначенном для .NET > = 2,0, если не требуется интерфейс со старым API, использующим его.
Как упомянуто в Платформе.NET документация
Мы не рекомендуем использовать
ArrayList
класс для новой разработки. Вместо этого мы рекомендуем использовать дженерикList<T>
класс.ArrayList
класс разработан для содержания неоднородных наборов объектов. Однако это не всегда предлагает лучшую производительность. Вместо этого мы рекомендуем следующее:
- Для неоднородного набора объектов, используйте
List<Object>
(в C#) илиList(Of Object)
(в Visual Basic) тип.- Для гомогенного набора объектов, используйте
List<T>
класс.
Видят также , Неуниверсальные наборы не должны использоваться