![]() |
Модераторы: skyboy |
![]() ![]() ![]() |
|
Колесо |
|
|||
Новичок Профиль Группа: Участник Сообщений: 17 Регистрация: 18.12.2011 Репутация: нет Всего: нет |
Здравствуйте.
Имеется таблица примерно такая: ----------------------------------------------------------------- | field1 | field2 | field3 | amount | ----------------------------------------------------------------- | name1 | null | null | 3000 | ----------------------------------------------------------------- | name2 | mame3 | name1 | 2000 | ----------------------------------------------------------------- | name1 | name2 | null | 1000 | ----------------------------------------------------------------- | name1 | name2 | name3 | 12000 | ----------------------------------------------------------------- Нужно посчитать сумму по каждому человку. Если заполнено поле3, то это сумма относится к человеку, указанному в этом поле, к другим сумма записываться и проверять значения в полях 1 и 2 не обязательно. Если заполнено поле2, то , то это сумма относится к человеку, указанному в этом поле, и проверять знаечение в поле 1 не обязательно. Сумма относится к человеку, указанному в поле 1, если в полях 2 и 3 значения null. Таким образом для таблицы выше должны получиться такие суммы: name1=5000 name2=1000 name3=12000 Подскажите как написать такой запрос? нужно использовать T/SQL? СУБД MsSQL Это сообщение отредактировал(а) Колесо - 24.1.2014, 09:52 |
|||
|
||||
_zorn_ |
|
||||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1077 Регистрация: 21.8.2007 Репутация: нет Всего: 12 |
MySQL (что было под рукой)
У MSSQL вроде ISNULL Это сообщение отредактировал(а) _zorn_ - 24.1.2014, 10:47 |
||||||
|
|||||||
Akina |
|
|||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 45 Всего: 454 |
-------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
Колесо |
|
|||
Новичок Профиль Группа: Участник Сообщений: 17 Регистрация: 18.12.2011 Репутация: нет Всего: нет |
_zorn_,
Akina, почему то не правильно считает: получается name Doc_Number amount 179 1007134 74.81 179 1007134 74.81 179 1007134 74.81 179 1007134 74.81 И так 560 строк. Соответственно при группировке сумма получается в 560 раз больше. Разделил на 560, проверил по нескольким пользователем. Вроде правильно. Спасибо! |
|||
|
||||
Akina |
|
|||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 45 Всего: 454 |
Колесо, в начальном посте поля имели другие имена. В последнем посте другое количество полей. Всё это не собирается воедино.
Поскольку одна и та же строка повторяется кучу раз - есть жестокие подозрения, что решение под реальную структуру адаптировано неправильно. А "деление на 560" - это заведомая грубая ошибка, которая непременно вылезет боком. Короче, совет применён неверно. Рекомендую не "лабать модельки", а давать настоящую структуру данных. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
Колесо |
|
|||
Новичок Профиль Группа: Участник Сообщений: 17 Регистрация: 18.12.2011 Репутация: нет Всего: нет |
Akina, извиняюсь. все действительно работает правильно.
просто джойнились 2 таблицы и не было прописано условия их объединения. еще раз извиняюсь |
|||
|
||||
Akina |
|
|||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 45 Всего: 454 |
Ну и ладушки. Главное - это что проблема сдохла, остальное мелочи.
-------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
![]() ![]() ![]() |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Составление SQL-запросов | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |