|
|
Помогите новичку с запросом. |
☑ |
|
0
MikhaDi4
22.10.11
✎
18:57
|
Добрый вечер, помогите новичку запрос составить.
Некоторые запросы возвращают таблицы вот такой структуры:
Агент База Сумма
Неполучается составить запрос для получения требуемого результата (см.пример)
Пример:
Запрос1:
Вася 12 110
Петя 15 5648
Маша 08 876
Запрос2:
null 12 123
null 07 13
Требуемый результат:
Вася 12 223
Петя 15 5648
Маша 08 876
null 07 13
|
|
|
1
zak555
22.10.11
✎
19:02
|
переписать два запроса в один нормальный правильный
для этоого озвучь поставленную задачу
|
|
|
2
Asmody
22.10.11
✎
19:05
|
Магия запросов заключена в трёх словах: ВЫБРАТЬ, ОБЪЕДИНИТЬ и СГРУППИРОВАТЬ
|
|
|
3
MikhaDi4
22.10.11
✎
19:19
|
Ну, подзапросами (Запрос1 и Запрос2) я получаю две таблички. Требуется к строкам первой таблички присовокупить строки второй таблички. Правила такое:
1)Во второй табличе поле Агент всегда NULL, т.е. это равносильно его отсутствию.
2)Соединение происходит при совпадении значения поля База. При этом, значения поля Сумма складываются.
|
|
|
4
MikhaDi4
22.10.11
✎
19:20
|
Я пробовал выбрать, объединить, соединить и сгруппировать. Но, видимо плохо разобрался.
|
|
|
5
БибиГон
22.10.11
✎
19:31
|
(4) см (2)
|
|
|
6
zak555
22.10.11
✎
19:45
|
(3) откуда получаем две таблички ?
|
|
|
7
Escander
22.10.11
✎
19:51
|
что-бы легче раскрилось - курите:
ВЫБОР
КОГДА поле1 Is null ТОГДА "NULL"
ИНАЧЕ поле1
КОНЕЦ
|
|
|
8
Nesh
22.10.11
✎
20:04
|
(7) а разве для этого не предназначена ECТЬNULL(Поле1,"NULL")
|
|
|
9
Escander
22.10.11
✎
20:08
|
(8) давай ещё войну на тему запроса устроим... пусть хоть то курит, хоть другое - главное что-бы раскурилось
|
|
|
10
GROOVY
22.10.11
✎
20:14
|
(8) Функция ЕСТЬNULL() транслируется как раз в (7). Так что разницы никакой.
|
|
|
11
izekia
22.10.11
✎
20:18
|
SELECT table1.field1, isnull(table1.field2, table2.field2), isnull(table1.field3, 0) + isnull(table2.field3, 0) FROM table1 LEFT JOIN table2 ON table1.field2 = table2.field2
это с учетом того что автор в (0) опечатался иначе куй его знает как третье поле в итоговой вычислять
|
|
|
12
БибиГон
22.10.11
✎
20:25
|
(11) это только для случая если во второй таблице есть только одна запись соответствующая таблице1, поэтому лучше все таки сначала объединить потом сгруппировать. :) как в (2)
|
|
|
13
izekia
22.10.11
✎
20:44
|
(12) во первых я не телепат, во вторых если такой умный, то сам бы и написал бы свой вариант
как пример (11) автору вполне подойдет
|
|
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший