24.04.2015, 15:31 | #21 |
Участник
|
ну не может быть, чтобы у такой простой задачи не было простого решения...
== (case B.PoleTTT isnull '' default B.PoleTTT ) ?.. |
|
27.04.2015, 07:46 | #22 |
NavAx
|
Цитата:
Как вам правильно подсказывают, разбейте на несколько запросов. Это не SQL, в котором нужно одним монструозным запросом все перелопатить. И я бы так базу не проектировал, конечно.
__________________
Isn't it nice when things just work? |
|
27.04.2015, 09:20 | #23 |
Участник
|
|
|
27.04.2015, 10:18 | #24 |
Участник
|
Цитата:
Правильно, не надо тратить время на изучение никому ненужного языка есть же c# пишите на нем и подключайте библиотеки! |
|
27.04.2015, 10:25 | #25 |
Участник
|
Как уже сдесь говорили в Ах поля не могут быть null следовательно этой задачи в этом языке быть не может. Если вы хотите чтобы вам помогли опишите ЧТО вы хотите достичь. а не КАК вы этого хотите достичь и вам обязательно помогут. Ну или постараются.
|
|
27.04.2015, 10:39 | #26 |
Участник
|
Цитата:
Сообщение от trudel
таблица A с прицепами для автомобилей. К ней привязана таблица B с автомобилями, именно в таблице B указан параметр определяющий стоимость из таблицы С для прицепа из А. В таблице С ищем стоимость- мы нашли наш прицеп в ней, но необходимо еще учесть параметр из B. Если автомобиль к прицепу не привязали, то берем по нашему прицепу по умолчанию параметр "оранжевый" и стоимость для него.
|
|
27.04.2015, 10:49 | #27 |
NavAx
|
А права доступа вы как будете к такому решению привинчивать? Особенно record level? Как вы будете отслеживать изменения в схеме данных? Ждать пока в runtime сбойнет?
__________________
Isn't it nice when things just work? |
|
27.04.2015, 11:10 | #28 |
Участник
|
У человека было большое желание написать запрос используя синтаксис SQL. Я подсказал как это можно сделать. Правильно это или нет это уже другой вопрос.
|
|
27.04.2015, 11:15 | #29 |
Участник
|
|
|
27.04.2015, 11:22 | #30 |
Участник
|
Я просто не обратил внимания на тему. Сорри.
С тем что так делать не надо я полностью согласен. Но ведь о том что DAX и так умеет надо упомянуть. Последний раз редактировалось maldini; 27.04.2015 в 11:31. |
|
27.04.2015, 20:37 | #31 |
Участник
|
Цитата:
Есть enum поля. делаю outer join с таблицей, содержащей их, для отчета. В итоге отчет выводит там где соединения не произошло все равно первое(0) значение енума, а должен пустое. Каким образом это сделать. При заполнении поля проверять поле "неенум типа" этой таблицы и если оно пустое, то тогда и енум поля заполнять пустым? |
|
27.04.2015, 21:55 | #32 |
Участник
|
Цитата:
Сообщение от trudel
помогите изучить. Книги на русском дают элементарные сведения, в справке на английском порой и не знаешь что искать. короче гуглю по вашему форуму и так учусь. что не нагуглю - спрашиваю.
Есть enum поля. делаю outer join с таблицей, содержащей их, для отчета. В итоге отчет выводит там где соединения не произошло все равно первое(0) значение енума, а должен пустое. Каким образом это сделать. При заполнении поля проверять поле "неенум типа" этой таблицы и если оно пустое, то тогда и енум поля заполнять пустым? X++: If (table) { return table.field; } else { return ""; } |
|
|
За это сообщение автора поблагодарили: trudel (1). |
28.04.2015, 01:03 | #33 |
NavAx
|
В AX запросы обычно разбивают на несколько. Т.е. описанный пример, если я его правильно понимаю, можно реализовать примерно так:
select a where a.trailerId = ...; select b where b.Id == a.carId; if(b) { select c where... } else { color = "оранжевый"; } т.е. работаешь скорее не как с запросом, а как с функциями, заполняющими объект данными.
__________________
Isn't it nice when things just work? Последний раз редактировалось macklakov; 28.04.2015 в 02:25. |
|
|
За это сообщение автора поблагодарили: trudel (1). |
28.04.2015, 11:24 | #34 |
Участник
|
Цитата:
Сообщение от trudel
Есть enum поля. делаю outer join с таблицей, содержащей их, для отчета. В итоге отчет выводит там где соединения не произошло все равно первое(0) значение енума, а должен пустое. Каким образом это сделать. При заполнении поля проверять поле "неенум типа" этой таблицы и если оно пустое, то тогда и енум поля заполнять пустым?
Axapta не в состоянии отличить состояние "нет значения", от "нулевого" значения поля. Значение NULL просто не поддерживается. Более того, для Enum вообще не существует понятия "пустого" (нулевого) значения, поскольку, как правило, нумерация в Enum как раз и начинается с нуля. Т.е. применительно к Enum отличить "пустое" от "не пустого" значения невозможно "в принципе" Только по значению других полей. Ну, за исключением случаев, когда нумерация Enum сделана "не стандартно" (разные есть варианты) В общем случае, по возможности, любые типы соединений, отличные от inner join лучше вообще избегать. Сопровождать такие запросы, если возникает желание как-то расширить функциональность, слишком сложно и накладно. По возможности, используйте различные альтернативы. От заполнения временных таблиц для отчета, до различных дисплейных методов. В Вашем случае, вероятно, подойдет вариант решения, использованный в формах SalesTable и PurchTable для отображения значений на закладках "Разноска", где отображаются номера и даты последних разнесенных документов разных типов.
__________________
- Может, я как-то неправильно живу?! - Отчего же? Правильно. Только зря... Последний раз редактировалось Владимир Максимов; 28.04.2015 в 11:30. |
|
28.04.2015, 15:11 | #35 |
Участник
|
После работы чисто со sql сложно перестроиться.. как раз таки хочется слепить большой запрос с различными джоинами ...
Еще вопрос, есть ли аксе12 пример выбора сразу нескольких значений из списка для фильтра. Мне надо выбрать несколько значений из enumа и передать отчету. создал расширенный тип на него, но поле lookup дает выбрать только одно значение. |
|
28.04.2015, 15:40 | #36 |
Участник
|
Цитата:
И вообще, Аксапта всегда инициализирует числовые поля 0-лями, а текстовые поля пустой строкой "". Последний раз редактировалось Ace of Database; 28.04.2015 в 15:44. |
|