powered by simpleCommunicator - 2.0.37     © 2025 Programmizd 02
Форумы / SQLite [игнор отключен] [закрыт для гостей] / помогите с запросом
12 сообщений из 12, страница 1 из 1
помогите с запросом
    #38946643
Pumbanirvana
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Люди, помогите. Не хватает знания. Есть следующий запрос
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
"SELECT" +
   "   dj.idStatus       AS [idStatus]," +
   "   st.name           AS [nmState]," +
   "   dj.id             AS [idDoc]," +
    "   dj.idRoute                   AS [idRoute]," +
   "   dj.idPhysicalPerson          AS [idPhysicalPerson], " +
   "   dj.idOperation    AS [idOperation]," +    ----- признак документа -2 накладная, 3-рко (расходник)
   "   dj.idState    AS [StatusDoc]," +
   "   op.shortName                 AS [docName]," +
   "   '№' || dj.PrintDocNum        AS [docNum]," +
   "   DATE(dj.OpDate)              AS [docDate]," +
   "   STRFTIME('%H:%M', dj.OpDate) AS [docTime], " +
   "   dj.idBuyPoint                AS [idBuyPoint]," +   - контрагенты
  "   sum(dj.Amount)                    AS [amount]," +
   "   dj.Comment                   AS [comment] " +
   "FROM docJournal dj  " +
   "LEFT JOIN enOperationTypes   op ON op.id = dj.idOperation" +
   "LEFT JOIN refDocumentStates  st ON st.id = dj.idState" +
   "WHERE   " +
   "   DATE(dj.OpDate) BETWEEN DATE('" + startDate + "') AND DATE('" + endDate + "')" +
  "   AND  dj.idOperation IN (2, 3)" +
     "   AND dj.deleted = 0          " +
    "  AND dj.idStatus = 1       " +
  "group BY              \n" +
"   dj.idBuyPoint, dj.idOperation              --";
  "ORDER BY              \n" +
  "   dj.OpDate ASC, dj.PrintDocNum ASC"
;


нуно подправить, что бы выводил запрос следующим образом (по сумме документов)

контрагент накладная(р) РКО (р)
рога и копыта 1255 0
Вася 521 344
Эврика 0 244
Хрон 2548 3578

что то типо того
умаился, не получается.
...
Рейтинг: 0 / 0
помогите с запросом
    #38946646
Pumbanirvana
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
чуть не доглядел, вот такая выборка должна быть.
Контрагент------Накладная-------РКО
РогаИКопыта---2504р.-------------0р.
Хронус--------2548р.------------245678р.
ВасяПетя------0р.----------------4569р.
Иволга--------45978-------------789456р.

что то типо того
...
Рейтинг: 0 / 0
помогите с запросом
    #38946700
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это читал?
13467826
...
Рейтинг: 0 / 0
помогите с запросом
    #38946708
Pumbanirvana
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вообще то это SQL Lite
...
Рейтинг: 0 / 0
помогите с запросом
    #38946759
Pumbanirvanaвообще то это SQL Liteвообще-то тебе намекалось, что неплохо было бы предоставить репрезентативный юзабильный набор тестовых данных и желаемый вид результата на нем с описанием алгоритма получения этого результата. Потому как по исходному запросу ни раз не видно, какие данные есть на входе и что на них возвращает твой запрос.
...
Рейтинг: 0 / 0
помогите с запросом
    #38946763
Merdoc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Pumbanirvana,
Попробуйте так
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
"SELECT" +
" dj.idBuyPoint AS [idBuyPoint]," + - контрагенты
" sum(case when dj.idOperation=2 then dj.Amount else 0 end) AS [amount1]," +  ---- накладная рублей
" sum(case when dj.idOperation=3 then dj.Amount else 0 end) AS [amount2]," +  ---- РКО рублей
" dj.Comment AS [comment] " +
"FROM docJournal dj " +
"LEFT JOIN enOperationTypes op ON op.id = dj.idOperation" +
"LEFT JOIN refDocumentStates st ON st.id = dj.idState" +
"WHERE " +
" DATE(dj.OpDate) BETWEEN DATE('" + startDate + "') AND DATE('" + endDate + "')" +
" AND dj.idOperation IN (2, 3)" +
" AND dj.deleted = 0 " +
" AND dj.idStatus = 1 " +
"group BY \n" +
" dj.idBuyPoint, dj.idOperation --";
"ORDER BY \n" +
" dj.OpDate ASC, dj.PrintDocNum ASC"
...
Рейтинг: 0 / 0
помогите с запросом
    #38946764
Merdoc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Merdoc,
Сорри, в group by dj.idOperation конечно лишний.
Код: sql
1.
2.
"group BY \n" +
" dj.idBuyPoint --";
...
Рейтинг: 0 / 0
помогите с запросом
    #38946843
Pumbanirvana
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Merdoc,

не пойдет такой вариант, уже пробовал, выводит списком
Контрагент---|---накладная---|---ПКОРогаИКопыта-|---459-----------|---0РогаИКопыта-|---0--------------|4578Вася-----------|---0--------------|123
...
Рейтинг: 0 / 0
помогите с запросом
    #38946871
Pumbanirvana
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Merdoc,

не сворачивает по суммам .
...
Рейтинг: 0 / 0
помогите с запросом
    #38946898
Pumbanirvana
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Pumbanirvana,

пробовал, выводит накладные одной суммой и и пко одной суммой.
...
Рейтинг: 0 / 0
помогите с запросом
    #38947051
Pumbanirvana,

вложи этот запрос в подзапрос, а на верхнем уровне ещё раз пройдись group_by-ем по контрагенту + SUM(накладная), SUM(ПКО)
...
Рейтинг: 0 / 0
помогите с запросом
    #38947173
Pumbanirvana
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый Э - Эх,

согласен, что через вложенный крутить треба, мозгов да опыта не хватает.
примерчик моно скинуть?
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / SQLite [игнор отключен] [закрыт для гостей] / помогите с запросом
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]