Форум: "Базы";
Текущий архив: 2003.01.23;
Скачать: [xml.tar.bz2];
ВнизЗапрос к базе данных Найти похожие ветки
← →
softmaster (2002-12-27 15:24) [0]Народ, всем привет!
Подскажите: есть таблица , хранящая выписааные документы.Формат
Дата №док Клиент Сумма
12.12.02 1 Мишин 100
12.12.02 2 Мишин 50
12.12.02 3 Касса 200
12.12.02 4 Касса 30
Необходимо в отчете за 12.12.02 получить данные в таком формате
Дата № док Клиент Сумма
12.12.02 1 Мишин 100
12.12.02 2 Мишин 50
12.12.02 Касса 230
Т.е. мне необходимо объединять данные по КАССЕ и по дню, а другие выводить так как есть. Подскажите, как лучше подойти к этой задачке.Заранее благодарен за ответ.
← →
Delirium^.Tremens (2002-12-27 15:33) [1]Где-то около этого:
select data, ndoc, client, summa
from table_name
where client <> "Касса"
union all
select data, ndoc, client, SUM(summa)
from table_name
where client = "Касса"
Group By data, ndoc, client
← →
softmaster (2002-12-27 15:50) [2]Нет, так пробовал.
Он данные по кассе разрывает, так как № док разные, он их не группирует.
Что нить еще можно попробовать?
Он выдает все в таком же виде
12.12.02 1 Мишин 100
12.12.02 2 Мишин 50
12.12.02 3 Касса 200
12.12.02 4 Касса 30
← →
Delirium^.Tremens (2002-12-27 16:01) [3]Ну, а так?
select data, ndoc, client, summa
from table_name
where client <> "Касса" and data = "12.12.2002"
union all
select data, 0 as ndoc, client, SUM(summa)
from table_name
where client = "Касса" and data = "12.12.2002"
Group By data, ndoc, client
← →
softmaster (2002-12-27 16:07) [4]А если мне нужно получить отчет не за день, а за неделю?
← →
softmaster (2002-12-27 16:08) [5]и все равно он не объединяет данные
так как № док разный.
Блин, что делать?
← →
Delirium^.Tremens (2002-12-27 16:09) [6]
> Необходимо в отчете за 12.12.02 получить данные в таком
> формате
Дайте водички попить, а то так жрать хочется, что переночевать негде.
← →
Delirium^.Tremens (2002-12-27 16:10) [7]
> и все равно он не объединяет данные
> так как № док разный.
Откуда он разный если я уже константой туда 0 ввел?
← →
passm (2002-12-27 16:20) [8]SELECT T.D_DATE, T.N_DOC, T.CLIENT, T.D_SUMM
FROM TABLE1 AS T
WHERE T.CLIENT <> :CLENT_CASSA
UNION ALL
SELECT T.D_DATE, CAST(NULL AS INTEGER) AS N_DOC, T.CLIENT, SUM(T.D_SUMM) AS D_SUMM
FROM TABLE1 AS T
WHERE T.CLIENT = :CLENT_CASSA
GROUP BY T.D_DATE, T.CLIENT
Перев выполнением заполни ParamByName("CLIENT_CASSA").AsString значением "касса "
← →
passm (2002-12-27 16:23) [9]passm © (27.12.02 16:20)> Да... для явной сортировки можно:
SELECT T.D_DATE, T.N_DOC, T.CLIENT, T.D_SUMM, 0 AS ORD_NUM
FROM TABLE1 AS T
WHERE T.CLIENT <> :CLENT_CASSA
UNION ALL
SELECT T.D_DATE, CAST(NULL AS INTEGER) AS N_DOC, T.CLIENT, SUM(T.D_SUMM) AS D_SUMM, 1 AS ORD_NUM
FROM TABLE1 AS T
WHERE T.CLIENT = :CLENT_CASSA
GROUP BY T.D_DATE, T.CLIENT
ORDER BY ORD_NUM
← →
Delirium^.Tremens (2002-12-27 16:30) [10]passm © (27.12.02 16:20)>
Ты зачем у меня списываешь? И вот это почему так записано: CAST(NULL AS INTEGER) AS N_DOC,? Чем плоха моя запись (0 as ndoc)?
← →
passm (2002-12-27 16:37) [11]Delirium^.Tremens © (27.12.02 16:30)> Я не списывал. Просмотрел бегло твой запрос, увидел во втором запросе
> Group By data, ndoc, client
и не стал вникать.
Так уж вышло...
← →
Delirium^.Tremens (2002-12-27 16:38) [12]Да ладно, я ж шучу.
← →
softmaster (2002-12-27 16:39) [13]2 Delirium^.Tremens
Блин, сорри, 0 не заметил :-). Сразу за дату кинулся...
спасибо.
Адрес для пива черкни...
:-)
← →
passm (2002-12-27 16:42) [14]Delirium^.Tremens © (27.12.02 16:38)> После "общения" с Lady D я как пуганая ворона на куст ;))
← →
Delirium^.Tremens (2002-12-27 16:44) [15]
> Блин, сорри, 0 не заметил :-). Сразу за дату кинулся...
> спасибо.
> Адрес для пива черкни...
> :-)
Не стоит. Я сам дурканул, во втором запросе условие для даты добавил. Это потому что углядел ее в вопросе поздно. Главное то там было про 0, а я внимание твое рассеял.
← →
softmaster (2002-12-27 21:01) [16]2 Delirium^.Tremens
2 passm
Ребята, огромное спасибо.
очень помогли
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2003.01.23;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.009 c