1. ciddex 11.09.19 13:50 Сейчас в теме

Как добавить колонку из другой вр. таблицы без связи

Добрый день! Не знаю даже как правильно сформулировать данный вопрос, надеюсь поймете. Как во вторую таблицу добавить колонки Общая выручка и Общая прибыль, которые я получил в первой вр. таблице? Чтобы каждая строка имела вид: Партнер | Количество | Выручка | Прибыль | ОбщаяВыручка | ОбщаяПрибыль.

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ РАЗРЕШЕННЫЕ
	вз.Выручка							КАК ОбщаяВыручка,
	вз.Выручка - вз.Себестоимость		КАК ОбщаяПрибыль
ПОМЕСТИТЬ
	вт_ОбщиеПродажи
ИЗ
	(ВЫБРАТЬ 
		СУММА(Продажи.Цена1)				КАК Себестоимость,
		СУММА(Продажи.СуммаВыручки)			КАК Выручка
	ИЗ
		вт_Продажи КАК Продажи) КАК вз
;
		
////////////////////////////////////////////////////////////­////////////////////			
ВЫБРАТЬ РАЗРЕШЕННЫЕ
	вз.Партнер					КАК Партнер,
	СУММА(вз.Количество)		КАК Количество,
	СУММА(вз.Выручка)			КАК Выручка,
	СУММА(вз.Прибыль)			КАК Прибыль
ИЗ
	(ВЫБРАТЬ 
		Закупки.Партнер								КАК Партнер,
		Закупки.Номенклатура						КАК Номенклатура,
		Закупки.Характеристика						КАК Характеристика,
		Продажи.Количество							КАК Количество,
		Продажи.СуммаВыручки						КАК Выручка,
		Продажи.СуммаВыручки - Продажи.Цена1		КАК Прибыль	
	ИЗ
		вт_Закупки3 КАК Закупки
		ЛЕВОЕ СОЕДИНЕНИЕ вт_Продажи КАК Продажи
			ПО (Закупки.Номенклатура = Продажи.Номенклатура
				И Закупки.Характеристика = Продажи.Характеристика)
				) КАК вз
СГРУППИРОВАТЬ ПО
	вз.Партнер
Показать
Найденные решения
8. dhurricane 11.09.19 14:00 Сейчас в теме
(7) Выше я указал. Примерно так:
ВЫБРАТЬ
   Т1.Партнер,
   Т1.Прибыль,
   Т1.Прибыль / Т2.ОбщаяПрибыль КАК ДоляПрибыли
ИЗ
   ВтПродажи КАК Т1,
   ВтОбщиеПродажи КАК Т2
user811769; ciddex; +2 Ответить
Остальные ответы
Избранное Подписка Сортировка: Древо
3. dhurricane 11.09.19 13:56 Сейчас в теме
(1) Связь необязательна. Если Вы пользуетесь конструктором запроса, то просто добавьте нужную таблицу к запросу, а связи не настраивайте. В результате у Вас вторая таблица будет просто указана через запятую от основной.
6. user614822 29 11.09.19 13:57 Сейчас в теме
(3) Но и смысла в том что выведет запрос не будет никакого!
Да выйдут колонки с какими-то данными... но кому нужна такая лажа?
2. user614822 29 11.09.19 13:55 Сейчас в теме
без связи вы получите ПОЛНЫЙ бред - вы это понимаете?
ибо кто и откуда может знать что именно Эта выручка относится именно к этому Партнеру и так далее...
Связи - это основа любых данных и баз данных!
Без связей информация вообще никакого смысла не имеет....


В вашем случае нужна связь по партнеру
5. dhurricane 11.09.19 13:57 Сейчас в теме
(2) Призываю Вас не спешить с выводами. :) Возможно автору требуется не сама общая прибыль, а нужно рассчитать процент прибыли по партнеру от общей прибыли.
7. user614822 29 11.09.19 13:58 Сейчас в теме
(5) но как без связи вы вообще хотите выводить любые данные?
8. dhurricane 11.09.19 14:00 Сейчас в теме
(7) Выше я указал. Примерно так:
ВЫБРАТЬ
   Т1.Партнер,
   Т1.Прибыль,
   Т1.Прибыль / Т2.ОбщаяПрибыль КАК ДоляПрибыли
ИЗ
   ВтПродажи КАК Т1,
   ВтОбщиеПродажи КАК Т2
user811769; ciddex; +2 Ответить
10. ciddex 11.09.19 14:03 Сейчас в теме
(8) Спасибо, сейчас попробую
11. user614822 29 11.09.19 14:03 Сейчас в теме
(8) Вашу идею понял....
Но тогда двойная бессмыслица в исходной условии - в каждой строке выводить глобально общую прибыль.
Она же одинаковая в каждой строке... Зачем ее выводить ежестрочно?
12. ciddex 11.09.19 14:05 Сейчас в теме
(11) А как я по другому это посчитаю? Мне нужна просто связь таблиц, а в строках будет в итоге лишь доля прибыли по партнеру от общей прибыли
9. ciddex 11.09.19 14:03 Сейчас в теме
(5) Именно это и нужно, только никак не могу их соединить
14. dhurricane 11.09.19 14:07 Сейчас в теме
(9) Можно и соединить, при желании. В зависимости от задачи, оно даже может быть и необходимым. Если Вы пользуетесь конструктором запроса, добавьте между таблицами связь, установите флажок "Произольное" (перед условием связи), а в качестве условия связи укажите "ИСТИНА" (без кавычек).
user811769; +1 Ответить
15. ciddex 11.09.19 14:08 Сейчас в теме
(14) А как это работает? Результат не будет таким же как в запросе, что вы написали выше?
19. dhurricane 11.09.19 14:16 Сейчас в теме
(15) Нет, не всегда. Зависит от того, какая таблица будет основной. В запросе с основной таблицей - продажи общие продажи, где нет связи и нет продаж, в результате не будет ни одной строчки. В запросе, где связь есть, обязательно будет одна.
20. ciddex 11.09.19 14:29 Сейчас в теме
(19) Понял, спасибо большое, все получилось. А связь ИСТИНА то же самое, что и через запятую таблицы перечислить?
21. dhurricane 11.09.19 14:35 Сейчас в теме
(20) Нет, я же говорю. :)

Для случая, когда перечисляем через запятую, количество строк в результате запроса будет равно произведению количества строк в первой и второй таблицах. Если хотя бы в одной их них не будет строк, то и в результате строк не будет.

Для случая, когда связываем таблицы левым соединением, количество строк в результате запроса также будет равно произведению числа строк в таблицах. За исключением ситуации, когда в одной из исходных таблиц нет записей. Если нет записей в основной таблице, результат будет пустой. Если нет записей в присоединяемой таблице, в результате все равно будут записи из основной таблицы.
22. user614822 29 11.09.19 15:37 Сейчас в теме
(21) Позвольте не согласиться с
когда связываем таблицы левым соединением, количество строк в результате запроса также будет равно произведению числа строк в таблицах

Как вы выполните тут произведение?
Сколько будет строк в результате левого соедиенения?
По вашей философии 4х5=20
А будет всего 4 строчки!

//  -------------   --------------------------------
    //  |Люди         |   |   Характеристики              |
    //  -------------   ---------------------------------
    //  |ИМЯ          |   |   ИМЯ             ВОЗРАСТ  |
    //  -------------   ---------------------------------
    //  |Алена        |   |   Алена           21              |
    //  |Алефтина   |   |   Алефтина        18           |
    //  |Владимир  |   |   Павел           25             |
    //  |Владислав |   |   Петр            30              |
    //  |                 |   |   Порфирий        50           |
    //  -------------   ---------------------------------
Показать
23. dhurricane 11.09.19 15:43 Сейчас в теме
(22) Не-не, я же не общий случай рассматриваю, а когда условие связи "ИСТИНА". :)
24. user614822 29 11.09.19 15:59 Сейчас в теме
(23) Ясно...
при условии ИСТИНА просто всегда выполняется ПОЛНОЕ соединение вне зависимости от того что там фактически написано - левое или внутреннее или что еше
25. dhurricane 11.09.19 16:01 Сейчас в теме
(24) Это не так. При полном соединении, когда в основной таблице нет данных, а в присоединяемой есть, результат будет содержать данные. При левом - результат будет пустой.
27. user614822 29 11.09.19 16:30 Сейчас в теме
13. user614822 29 11.09.19 14:05 Сейчас в теме
(5) Если бы автор хоть словом обмолвился про процент от общей прибыли....
было бы сразу все ясно....
16. ciddex 11.09.19 14:11 Сейчас в теме
(13) Ну мне нужно было просто получить хотя бы данные общ выручку и прибыль, дальше сам бы разобрался
17. dhurricane 11.09.19 14:12 Сейчас в теме
(13) Согласен, очень часто на форуме встречается странных, либо совершенно непонятных формулировок задач.
Я в таких случаях, в зависимости от настроения:
- начинаю угадывать;
- решаю задачу в лоб - что спросили, то и ответил;
- жду, когда кто-нибудь из форумчан наводящими вопросами вытянет более полную информацию;
- прохожу мимо.
18. ciddex 11.09.19 14:16 Сейчас в теме
(17) Я поэтому написал: "Не знаю даже как правильно сформулировать данный вопрос, надеюсь поймете". Т.к. я не знал возможно ли так использовать данные из другой таблицы без Левого, правого, полного, внутреннего или объединения как-либо соединить. Надеялся на понимание. Сам понимаю, что мало дал информации
4. user614822 29 11.09.19 13:56 Сейчас в теме
А еще что за новая мода совмещать вложенный запрос с временной таблицей? чтоб голову свернуть?
26. user1076377 11.09.19 16:02 Сейчас в теме
Оставьте свое сообщение
Новые вопросы с вознаграждением
Автор темы объявил вознаграждение за найденный ответ, его получит тот, кто первый поможет автору.

Вакансии

Программист 1С
Санкт-Петербург
зарплата от 130 000 руб.
Полный день


Программисты 1С УТ / БУЗ/ЗУП / БИТ ФИНАНС
Москва
зарплата от 100 000 руб. до 180 000 руб.
Полный день

Программист 1С
Москва
зарплата от 150 000 руб. до 150 000 руб.
Полный день

Программист, аналитик, эксперт 1С
Санкт-Петербург
По совместительству