Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Нужна помощь с запросом SQL [D6, dBase, FoxPro]


jojo ©   (2004-09-21 07:12:00) 

Есть у меня табла с следующими полями :

Вот возможные записи

Nподр 1
Дата - 20.09.04
Дебет - 10
Аналитика Дебета - Завод1
Кредит -
Аналитика Кредита -
Сумма 1000
...
Nподр 1
Дата - 20.09.04
Дебет -
Аналитика Дебета -
Кредит - 10
Аналитика Кредита -Завод1
Сумма 2000

Нужно получить таблицу оборотов по дебету и по кредиту
вида SQL запросом :

Nподр | Дата |Дт |АДт |Кр |АКр |Сумма Дт|Сумма Кр|


Johnmen   (2004-09-21 12:25:00) [1]

>Наталия ©   (21.09.04 12:09) [7]

Совпадает :) А вот типы - нет.


Наталия   (2004-09-21 12:09:00) [2]

так у тебя в union количество полей не совпадает...


Johnmen   (2004-09-21 10:22:00) [3]

0.0


jojo   (2004-09-21 10:15:00) [4]

отдельно запрос
прекрасно работает
SELECT NP,DT,AD,1 as NU,SMR AS SMRD,0 AS SMRK FROM
bp_0604.dbf
where DT ='602401'


ЮЮ   (2004-09-21 09:40:00) [5]

Например,
0000 AS SMRK  <> (по типу) SMR (Float)
Надо
CAST(0 AS FLOAT)

Fyfkjubxyj SMR AS SMRD и 0


jojo   (2004-09-21 09:35:00) [6]

Даже такой не катит
вылазит ошибка
type mismath in expression(несоответ типа)

SELECT NP,DT,AD,1 as NU,SMR AS SMRD,0 AS SMRK FROM
bp_0604.dbf
where DT ='602401'
UNION ALL
SELECT NP,K,AK,1 as NU,0,SMR FROM
bp_0604.dbf
where K ='602401'


jojo   (2004-09-21 09:34:00) [7]

Почему не катит запрос
        SQL.Add('SELECT NP,DT,AD,1 as NU,SMR AS SMRD,0000 AS SMRK FROM ');
          SQL.Add(NewName[mes,j]);
          SQL.Add(' WHERE DT>='+ #39 +'300000'+#39+' AND DT<='+#39+'339999'+#39);
          SQL.Add(' UNION ALL');
          SQL.Add(' SELECT NP,K,AK,1,0,SMR FROM ');
          SQL.Add(NewName[mes,j]);
          SQL.Add(' WHERE K>='+ #39 +'300000'+#39+' AND K<='+#39+'339999'+#39);

NP Smallint 0
DOD Date 0
DT String 6
AD String 8
K String 6
AK String 8
NU Smallint 0
SMRD Float 0
SMRK Float 0


ЮЮ   (2004-09-21 07:41:00) [8]

Т.е. сумировать нужно лишь те строки, у которых одинаковы
Nподр, Дата, Дебет, Аналитика Дебета, Кредит и Аналитика Кредита?

SELECT
 Nподр, Дата, Дебет, Аналитика Дебета, Кредит, Аналитика Кредита,
 SUM(Дебет) Cумма Дт, SUM(Кредит) Cумма Кр
FROM
 Table
GROUP BY
 Nподр, Дата, Дебет, Аналитика Дебета, Кредит, Аналитика Кредита


Наверх

Титульная страница Поиск, карта сайта Написать письмо