Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.05.2014, 23:08   #11
kkasady
Пользователь
 
Регистрация: 12.05.2014
Сообщений: 14
По умолчанию

Цитата:
Сообщение от evg_m Посмотреть сообщение

если поддержаны вложенные запросы, можно
Код:
select t3.sups, itg.sums
from t3 -поставщики
left join ( select t2.N, sum(t2.qnt, t1.prc) as sums
               from t2 -поставки
               left join t1 on t1.N =t2.N -товары (чтобы узнать цену)
               group by t2.N --расчет суммы по поставщикам
            ) as sums on sums.N =t3.N
что такое itg.sums?

и еще, если так писать sum(t2.qnt, t2.prc), то ошибка выскакивает - Неверное число аргументов функции в выражении запроса SUM (db2.QNT, db2.PRC).

если знак * ставить sum(t2.qnt * t2.prc), то считает неправильно.
kkasady вне форума Ответить с цитированием
Старый 16.05.2014, 09:31   #12
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

Код:
select t3.sups, itg.sums ....
читать как
Код:
select t3.sups, sums.sums
from t3 -поставщики
left join ( select t2.N, sum(t2.qnt*t1.prc) as sums
               from t2 -поставки
               left join t1 on t1.N =t2.N -товары (чтобы узнать цену)
               group by t2.N --расчет суммы по поставщикам
            ) as sums on sums.N =t3.N
Код:
если знак * ставить sum(t2.qnt * t2.prc), то считает неправильно.
что сие означает?
пример исходных данных.
полученный результат.
ожидаемый результат.


и ваше мнение о
Цитата:
хранить цену оптимальнее в таблице поставки (вместе с количеством). Один и тот же товар может быть поставлен по РАЗНЫМ ценам.
Хлеб столичный от Ивана в 2010 г. 10р.
Хлеб столичный от Петра в 2012 г. 10.05р
Хлеб столичный от Ивана в 2014 г. 11.45р.
Или это будет уже другой товар?
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Старый 16.05.2014, 15:55   #13
kkasady
Пользователь
 
Регистрация: 12.05.2014
Сообщений: 14
По умолчанию

например:
поставщик 2
товар 1 - 2 (QNT) | 5 (PRC)
товар 2 - 7 | 6
товар 3 - 6 | 4
должно получиться 76 = 2*5 + 7*6 + 6*4
но получается 54?

по поводу цены: да вы правы, так будет правильней. я уже переделал.
kkasady вне форума Ответить с цитированием
Старый 17.05.2014, 20:30   #14
kkasady
Пользователь
 
Регистрация: 12.05.2014
Сообщений: 14
По умолчанию

кстати, вот так считает все нормально:
Код:
ADOQuery4.Close;
ADOQuery4.SQL.Clear;
ADOQuery4.SQL.Add('SELECT SUM (db2.QNT * db2.PRC) FROM db2');
ADOQuery4.SQL.Add('GROUP BY db2.NSUPS');
ADOQuery4.Open;
но нужно еще вывести имена поставщиков.
kkasady вне форума Ответить с цитированием
Старый 17.05.2014, 20:41   #15
kkasady
Пользователь
 
Регистрация: 12.05.2014
Сообщений: 14
По умолчанию

все.
всем спасибо.
разобрался.
kkasady вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вычислить сумму (СИ) GroMkiY Помощь студентам 4 16.10.2013 19:46
Три задачи - Найти сумму натуральных чисел; Протабулировать функцию; вычислить сумму kolya1114 Паскаль, Turbo Pascal, PascalABC.NET 3 01.12.2012 19:01
Вычислить сумму rapprozi Помощь студентам 1 11.05.2012 23:30
Вычислить сумму lady.ulumba Помощь студентам 4 16.10.2011 18:38
Вычислить сумму Balda1111 Паскаль, Turbo Pascal, PascalABC.NET 2 12.04.2011 13:36