Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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
1-72236
DmitryMN
2003-01-14 16:43
2003.01.23
Закрытие Excel из потока


14-72460
Nick_N_A
2003-01-05 07:10
2003.01.23
Рисовалка ? ? ?


3-72144
rule
2002-12-21 13:02
2003.01.23
Как задать хитрый SQL запрос


14-72542
Vyacheslav
2003-01-05 12:16
2003.01.23
Подскажите пожалуйста, проджекту пятый месяц пошел.


7-72566
lakich
2002-10-23 06:21
2003.01.23
Удалённый комп





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский