Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.01.23;
Скачать: CL | DM;

Вниз

Запрос к базе данных   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.012 c
1-72279
TAN
2003-01-15 10:44
2003.01.23
Глупый вопрос про дату


1-72201
Андрусь
2003-01-13 12:49
2003.01.23
как запихнуть ф-ю класса в указатель


9-72019
Xein
2002-07-24 09:09
2003.01.23
Аркаоид


3-72071
Ruf
2003-01-06 12:42
2003.01.23
Паролить на mdb


14-72495
NOE
2003-01-06 12:59
2003.01.23
389-й порт and TCP/IP