Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > SQL, базы данных
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.10.2010, 11:51   #1
pobedin
Форумчанин
 
Регистрация: 30.07.2009
Сообщений: 105
По умолчанию Запрос на выборку

Здравствуйте!
Существует запрос :
Код:
SELECT 
 DVIZHENIE.ID, DVIZHENIE.PRZNK, 
 SUM( DVIZHENIE.L_FIZVES ) SUM_OF_L_FIZVES, 
 SUM( DVIZHENIE.L_ZHIR ) SUM_OF_L_ZHIR, 
 SUM( DVIZHENIE.L_ZHKG ) SUM_OF_L_ZHKG, 
 SUM( DVIZHENIE.P_FIZVES ) SUM_OF_P_FIZVES, 
 SUM( DVIZHENIE.P_ZHIR ) SUM_OF_P_ZHIR, 
 SUM( DVIZHENIE.P_ZHKG ) SUM_OF_P_ZHKG
FROM DVIZHENIE
WHERE 
   (
      (DVIZHENIE.PRZNK = 1)
   or 
      (DVIZHENIE.PRZNK = 2)
   )
GROUP BY DVIZHENIE.ID, DVIZHENIE.PRZNK
как его изменить, чтобы от каждой суммы с prznk = 1 отнять сумму с prznk = 2 и сделать это в этом же запросе? или посоветуйте как это сделать лучше по-другому.

Последний раз редактировалось Stilet; 25.10.2010 в 13:36.
pobedin вне форума Ответить с цитированием
Старый 25.10.2010, 15:03   #2
soleil@mmc
SQL-коддинг
Участник клуба
 
Регистрация: 16.01.2009
Сообщений: 1,192
По умолчанию

кагтотаг
Код:
select 
 d.id,
 sum(case
    when d.prznk = 1 then D.L_FIZVES
    when d.prznk = 2 then -D.L_FIZVES
    else 0 end) sum_of_l_fizves/*,
 sum(d.l_zhir ) sum_of_l_zhir,
 sum(d.l_zhkg ) sum_of_l_zhkg,
 sum(d.p_fizves ) sum_of_p_fizves,
 sum(d.p_zhir ) sum_of_p_zhir,
 sum(d.p_zhkg ) sum_of_p_zhkg*/
from  dvizhenie d
where 0=0
  and d.prznk in (1, 2)
group by d.id
остальные поля сам поправишь
soleil@mmc вне форума Ответить с цитированием
Старый 25.10.2010, 15:25   #3
pobedin
Форумчанин
 
Регистрация: 30.07.2009
Сообщений: 105
По умолчанию

спасибо. а что значить "where 0=0" и для каждого поля case писать?
pobedin вне форума Ответить с цитированием
Старый 25.10.2010, 17:28   #4
soleil@mmc
SQL-коддинг
Участник клуба
 
Регистрация: 16.01.2009
Сообщений: 1,192
По умолчанию

ну ваще-то вопрос свой нужно начинать описанием субд
тогда и ответы будут емкими и в точку для вашей реализации
в оракле/ФБ еще можно сделать через decode() или через селект фром (селект 1 юнион олл селект 2)

теперь на последний вопрос: да, для всех полей
soleil@mmc вне форума Ответить с цитированием
Старый 08.11.2010, 07:58   #5
coernecow
Заблокирован
 
Регистрация: 06.11.2010
Сообщений: 5
По умолчанию Запрос на выборку

запрос следующего вида
SELECT goods.id, goods.name FROM goods LEFT JOIN category ON goods.id = category.goods AND category.razdel=2 WHERE category.goods IS NULL
до этого все работало корректно, в чем может быть проблема?

С уважением.
coernecow вне форума Ответить с цитированием
Старый 11.11.2010, 17:59   #6
GenniY
Форумчанин
 
Регистрация: 09.09.2009
Сообщений: 181
По умолчанию

Цитата:
запрос следующего вида
SELECT goods.id, goods.name FROM goods LEFT JOIN category ON goods.id = category.goods AND category.razdel=2 WHERE category.goods IS NULL
до этого все работало корректно, в чем может быть проблема?

С уважением.
А как оно могло вообще работать корректно???
И вопрос не по этой теме!
Получил помощь — отблагодарил.
GenniY вне форума Ответить с цитированием
Старый 20.11.2010, 20:56   #7
Loosher
Новичок
Джуниор
 
Регистрация: 05.04.2010
Сообщений: 1
По умолчанию

тема запросов потому пишу сюда

необходимо составить перекрестный запрос
надыбал
http://www.t-sql.ru/post/Crosstab.aspx

набрал:
Код:
create procedure sp_crosstab
	@table		as sysname, --таблица для построения отчета
	@onrows		as varchar(128), -- значения для группировки по строкам
	@onrowsalias as sysname = NULL, -- псевдоним для группируемой колонки 
	@oncols		as varchar(128), -- значение для группировки по колонкам
	@sumcol		as sysname = NULL, -- значение для суммирования
AS 
SET NOCOUNT ON
declare
@sql as varchar(max),
@case as varchar(1000)
set @case=''
select @sql='
select @case=@case+''[''+convert(varchar, ' +@oncols+')+''],'''+
'from ' +@table+' group by ' + @oncols +' order by '+@oncols

exec sp_executesql @sql,N'@case varchar(1000) out', @case = @case out
set @case = LEFT(@case, len(@case)-1)

select @sql = 'select * from (
select ' + @oncols+ 'y,' +@onrows+' ' +@onrowsalias+','+@sumcol+' from ' +@table+
') as s

pivot
(sum('+@sumcol+') for y in ('+@case+')) as pv'  

print @sql --для отладки
execute (@sql)
результат:
Сообщение 156, уровень 15, состояние 1, процедура sp_crosstab, строка 8
Неправильный синтаксис около ключевого слова "AS".

я-новичкэ в sql, потому буду рад помощи знающих!

Последний раз редактировалось Stilet; 20.11.2010 в 22:13.
Loosher вне форума Ответить с цитированием
Старый 12.12.2010, 19:16   #8
estanol
Новичок
Джуниор
 
Аватар для estanol
 
Регистрация: 09.12.2010
Сообщений: 1
По умолчанию Запрос на выборку

в данном запросе, вы, предлагаете мне вводить параметор Strana, но мне этого делать не нужно, потому что он мне уже известен, я выбираю его заранее.Т. е. я выбираю Strana, мне выводится список всех Tur, Cena,..., и вот здесь нужно сделать запрос к Table2, вывести список всех Tur, Cena, .... в указанном диапазоне цен, для выбранной стрвны.
___________________________________ ________________
Компания Металлпрофи, производящая металлические двери
поздравляет вас с наступающими праздниками!!!
estanol вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
С# Запрос на выборку fobass Общие вопросы .NET 2 04.02.2010 14:26
Запрос на выборку igordeg Microsoft Office Access 3 21.01.2010 21:33
Запрос на выборку Like Agapov_stas Microsoft Office Access 3 02.12.2009 11:09
запрос на выборку МаришаГ Microsoft Office Access 5 21.08.2009 23:46
Запрос на выборку Ruska882009 Microsoft Office Access 2 26.02.2009 20:39