На главную
ПРАВИЛА FAQ Помощь Участники Календарь Избранное DigiMania RSS
msm.ru
! информация о разделе
user posted imageДанный раздел предназначается исключительно для обсуждения вопросов использования языка запросов SQL. Обсуждение общих вопросов, связанных с тематикой баз данных - обсуждаем в разделе "Базы данных: общие вопросы". Убедительная просьба - соблюдать "Правила форума" и не пренебрегать "Правильным оформлением своих тем". Прежде, чем создавать тему, имеет смысл заглянуть в раздел "Базы данных: FAQ", возможно там уже есть ответ.

Модераторы: Pr0[)!9Y, Akina, JoeUser
Страницы: (11) « Первая ... 8 9 [10] 11  все  ( Перейти к последнему сообщению )  
> Помогите с запросом
    MIF а эту таблицу придется удалять и создавать в запросе каждый раз?
    "Воля - это то, что заставляет тебя побеждать, когда твой рассудок говорит тебе, что ты повержен" Карлос Кастанеда
      Если строки живут долго, то лучше хранить их в постоянной таблице.
      Если они меняются в каждом запросе, то лучше создавать временныйы таблицу в запросе.
      Мои религиозные убеждения не позволяют мне комментировать код.
      Моё мировоззренье таково: в программе комментария ни одного!
        Цитата ^D^ima @
        а эту таблицу придется удалять и создавать в запросе каждый раз?

        Ответ зависит от двух факторов. Первый - изменчивость исходных данных и соответственно данных в этой таблице. Второй - расход ресурсов на получение данных для такой таблицы. На основании этих данных следует сделать выбор либо в пользу скорости ценой точности/актуальности, либо наоборот.
        Если решите создавать каждый раз - используйте CTE (WITH Clause).
        Есть претензии ко мне как к модератору? читайте Правила, разделы 5 и 6, и действуйте соответственно.
        Есть претензии ко мне как к участнику? да ради бога.
        Не нравятся мои ответы? не читайте их.
        В общем, берегите себя. Нервные клетки не восстанавливаются.
          Друзья, какая агрегатная функция не суммирует а вычитает?
          "Воля - это то, что заставляет тебя побеждать, когда твой рассудок говорит тебе, что ты повержен" Карлос Кастанеда
            А что из чего вычитать-то?
            Есть претензии ко мне как к модератору? читайте Правила, разделы 5 и 6, и действуйте соответственно.
            Есть претензии ко мне как к участнику? да ради бога.
            Не нравятся мои ответы? не читайте их.
            В общем, берегите себя. Нервные клетки не восстанавливаются.
              Есть числовой столбец, нужно его не суммировать, а отнять,сгрупировав по 2му полю
              "Воля - это то, что заставляет тебя побеждать, когда твой рассудок говорит тебе, что ты повержен" Карлос Кастанеда
                :facepalm:

                В группе по некоему значению "второго поля" есть 4 записи со следующими значениями "числового столбца": 1,4,11,30. Каким должно быть значение, возвращаемое "функцией группового вычитания"? Как оно получено? И почему именно так?
                Есть претензии ко мне как к модератору? читайте Правила, разделы 5 и 6, и действуйте соответственно.
                Есть претензии ко мне как к участнику? да ради бога.
                Не нравятся мои ответы? не читайте их.
                В общем, берегите себя. Нервные клетки не восстанавливаются.
                  Цитата ^D^ima @
                  Есть числовой столбец, нужно его не суммировать, а отнять

                  Цитата Akina @
                  :facepalm:

                  :lol:

                  Групповое вычитание = -(групповое сложение) :jokingly:
                  Мои программные ништякиhttp://majestio.info
                    JoeUser
                    Не так. 2+2=4. Со знаком минус будет -4, а должно быть 0(2-2)


                    Akina
                    1-4-11-30
                    Нужно сагрегировать результат, как ари SUM, только с вычитанием каждого, а не сложением.
                    Ну или взять каждый элемент, и подставить минус. Типа Sum(- элемент) . Сами значения элементов положительные числа, нужно найти значение их разниц
                    "Воля - это то, что заставляет тебя побеждать, когда твой рассудок говорит тебе, что ты повержен" Карлос Кастанеда
                      Почему начали вычитать именно из 1, а не из, скажем, 11?
                      Есть претензии ко мне как к модератору? читайте Правила, разделы 5 и 6, и действуйте соответственно.
                      Есть претензии ко мне как к участнику? да ради бога.
                      Не нравятся мои ответы? не читайте их.
                      В общем, берегите себя. Нервные клетки не восстанавливаются.
                        Суммируешь все записи кроме ... кроме той, которую ты считаешь первой. И из нее вычитаешь сумму.
                        Мои религиозные убеждения не позволяют мне комментировать код.
                        Моё мировоззренье таково: в программе комментария ни одного!
                          MIF, в терминах SQL лучше суммить всё, и вычитать из удвоенного "избранного". В любом случае это таки сложение, а не вычитание.
                          Есть претензии ко мне как к модератору? читайте Правила, разделы 5 и 6, и действуйте соответственно.
                          Есть претензии ко мне как к участнику? да ради бога.
                          Не нравятся мои ответы? не читайте их.
                          В общем, берегите себя. Нервные клетки не восстанавливаются.
                            Цитата ^D^ima @
                            а должно быть 0(2-2)

                            Это с какого перепугу?
                            Суммируем мы же с нуля, не??? 0+значение записи1+значение записи2+ ... значение записиN
                            А чем вычитание "лучше"???
                            Скрытый текст
                            Просто есть подозрение что ты развиваешь тему "Как с помощью SQL зОхватить мир?" 8-)


                            Добавлено
                            Цитата MIF @
                            Суммируешь все записи кроме ... кроме той, которую ты считаешь первой. И из нее вычитаешь сумму.

                            Вот! Это четко)
                            Мои программные ништякиhttp://majestio.info
                              Зайду с другой стороны.
                              Коллеги, в общем ситуация такая. Есть таблица на выходе (всего по 2 цифры на первый столбец):
                              Клиент1 100
                              Клиент1 250
                              Клиент2 300
                              Клиент2 500

                              Нужно получить:
                              Клиент1 150 (по модулю 100-250 или 250-100 нет разницы)
                              Клиент2 200 (по модулю 300-500 или 500-300 нет разницы)
                              "Воля - это то, что заставляет тебя побеждать, когда твой рассудок говорит тебе, что ты повержен" Карлос Кастанеда
                                Цитата ^D^ima @
                                всего по 2 цифры на первый столбец

                                ExpandedWrap disabled
                                  MAX(field) - MIN(field) AS delta
                                Есть претензии ко мне как к модератору? читайте Правила, разделы 5 и 6, и действуйте соответственно.
                                Есть претензии ко мне как к участнику? да ради бога.
                                Не нравятся мои ответы? не читайте их.
                                В общем, берегите себя. Нервные клетки не восстанавливаются.
                                2 пользователей читают эту тему (1 гостей и 0 скрытых пользователей)
                                1 пользователей: ^D^ima
                                Страницы: (11) « Первая ... 8 9 [10] 11  все


                                Рейтинг@Mail.ru
                                [ Script Execution time: 0,1202 ]   [ 15 queries used ]   [ Generated: 18.09.18, 13:44 GMT ]