Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2009.10.11;
Скачать: [xml.tar.bz2];

Вниз

сложная выборка   Найти похожие ветки 

 
belmol   (2008-11-28 07:56) [0]

Доброго времени суток,
ситуация следующая: есть 2 таблицы 1- список договоров, 2 список счетов по данным договорам
1: id| name_org|date_in|          2: id|cash1 |cash2|vector

одной записи таблицы 1 соответствует несколько записей 2-й таблице, в гриде мне надо получить:
id|name_org|date_in|(сумма (cash1)где vector=0)-(сумма (cash1)где vector=1)|(сумма (cash2)где vector=0)-(сумма (cash2)где vector=1)
ну е выходит запрос. всю голову сломал(( видимо не хватает чего то в голове.


 
stas ©   (2008-11-28 09:05) [1]

Используй
CASE (в mssql в fb наверное тоже), SUM, GROUP BY


 
Сергей М. ©   (2008-11-28 09:27) [2]

Какое поле 2-й таблицы является втор.ключем  ?


 
Виталий Панасенко   (2008-11-28 09:39) [3]

Используй подзапросы
Select id,name_org,...,(select sum(cash1) from tab t1 where vector=0 and t1.id=t.id)-(select sum(cash1) from tab t1 where vector=1 and t1.id=t.id) и т.д.
from tab t


 
Кщд   (2008-11-28 09:46) [4]

>Виталий Панасенко   (28.11.08 09:39) [3]
>stas ©   (28.11.08 09:05) [1]
разумное решение

в Вашем варианте: на каждую запись таблицы 1 - четыре скана таблицы 2(и хорошо ещё, если по индексу) - это правильно?


 
Виталий Панасенко   (2008-11-28 11:02) [5]

предложите другой.. я не думаю, что связанных по ID данных - миллионы.. если так, то тогда переписать в EXECUTE BLOCK.. хотя.. все равно ведь суммы как-то считать нужно


 
stas ©   (2008-11-28 11:12) [6]

Не пойму в чем сложность?
Я напишу в синтаксисе MSSQL т.к. незнаю FB.
на FB наверное также решается.

Select table1.id, name_org,date_in,
sum (case when vector=0 then cash1 end)-sum(case when vector=1 then cash1 end) as summa1,
sum (case when vector=0 then cash2 end)-sum(case when vector=1 then cash2 end) as summa2
From tbal1 inner join table2 on table1.id=table2.id
group by table1.id, name_org,date_in


 
Виталий Панасенко   (2008-11-28 11:17) [7]


> stas ©   (28.11.08 11:12) [6]

да


 
belmol   (2008-11-28 12:21) [8]

СПАСИБО)



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2009.10.11;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.005 c
15-1247106590
keymaster
2009-07-09 06:29
2009.10.11
Интересуюсь работой


15-1249761808
Andy BitOff
2009-08-09 00:03
2009.10.11
Palladin, с Днем рождения!


1-1219300423
Чих-Пых
2008-08-21 10:33
2009.10.11
Вывод на печать каталога


10-1160294865
Primus
2006-10-08 12:07
2009.10.11
Позднее связывание


6-1207346087
FoxikM
2008-04-05 01:54
2009.10.11
Как временно отключить комп от сетки





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский