Компьютерный форум
Правила
Вернуться   Компьютерный форум > Форум программистов > Базы данных > SQL
Перезагрузить страницу Беда с датами (работаю с кадификатором)
Ответ
 
Опции темы Опции просмотра
  (#1 (permalink)) Старый
andrew51 andrew51 вне форума
Новичок
 
Сообщений: 2
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 07.07.2011
По умолчанию Беда с датами (работаю с кадификатором) - 07.07.2011, 13:34

Есь прога MEDIALOG там встроенный конфигуратор, чёрт ногу сломит..
Суть проблемы такова,не взирая на моё условие выражение всё считает только по первый переменной (равной к примеру 3), уже как только не пробовал нужного результата добится не могу( помогите хто может.

в иделе нжно шоб выражение брало значение KADIF.RUB2 до нового года, значение KADIF.RUB1 с нового года по 1 июня и KADIF.RUB после 1 июня

MOTCONSU.DATE_CONSULTATION - просто дата консультации
KADIF.RUB=3 ,
KADIF.RUB1=2
KADIF.RUB2=1

cast(
%if(MOTCONSU.DATE_CONSULTATION >="01.06.11",
KADIF.RUB,
%if(MOTCONSU.DATE_CONSULTATION >="01.01.11",
KADIF.RUB1,
KADIF.RUB2)
)
as numeric(10,2))
Ответить с цитированием
  (#2 (permalink)) Старый
andrew51 andrew51 вне форума
Новичок
 
Сообщений: 2
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 07.07.2011
По умолчанию 07.07.2011, 15:48

SELECT TOP 100
(cast (MOTCONSU.MOTCONSU_EV_ID as varchar(10))) CARD,( "750") CODE_HOSP,((SELECT CONSTANTSOMS.CODE_INOOBL_APU FROM CONSTANTSOMS CONSTANTSOMS)) CODE_COUNT,(cast(MOTCONSU.MEDECINS_APPROVED_ID as varchar(7))) P_CODE,KADIF.SPEC,
KADIF.kod_klas SERVICE,MOTCONSU.DATE_CONSULTATION SERV_DATE,(cast(1 as numeric(3,0))) UNITS,
(cast( case when MOTCONSU.DATE_CONSULTATION >="01.06.11" then KADIF.RUB else case when MOTCONSU.DATE_CONSULTATION >="01.01.11" then KADIF.RUB1 else KADIF.RUB2 end end as numeric(10,2))) PAY_SUM
,(cast(0 as numeric(10,2))) STOIM_V,PATIENTS.LPU_STR_POLISA DIRECT_LPU,(KADIF.STOIM_F ) STOIM_F
FROM
MOTCONSU MOTCONSU JOIN KADIF KADIF ON (MOTCONSU.KOD_USLUGI =KADIF.Nom_usl)
JOIN PATIENTS PATIENTS ON PATIENTS.PATIENTS_ID = MOTCONSU.PATIENTS_ID
WHERE
(MOTCONSU.CREATE_DATE_TIME >=dateadd(month,-4, dateadd(day,-day(getdate())+1,getdate())) and MOTCONSU.MOTCONSU_EV_ID = (SELECT DATA322.NSLUCH FROM DATA322 DATA322 WHERE (MOTCONSU.MOTCONSU_EV_ID =DATA322.NSLUCH)) and MOTCONSU.MOTCONSU_EV_ID <>0 and MOTCONSU.STACIONAR_FLAG =0 and MOTCONSU.KOD_USLUGI <> 999 and (MOTCONSU.DATE_CONSULTATION <"01.01.11" or (MOTCONSU.KOD_USLUGI = 1 or MOTCONSU.KOD_USLUGI = 19 or MOTCONSU.KOD_USLUGI = 20 ) ))
AND (KADIF.Kod_us = case when MOTCONSU.FLAG_USLUGI1=1 then "01" else "0" end or KADIF.Kod_us = case when MOTCONSU.FLAG_USLUGI2=1 then "02" else "0" end or KADIF.Kod_us = case when MOTCONSU.FLAG_USLUGI3=1 then "03" else "0" end or KADIF.Kod_us = case when MOTCONSU.FLAG_USLUGI4=1 then "04" else "0" end or KADIF.Kod_us = case when MOTCONSU.FLAG_USLUGI5=1 then "05" else "0" end or KADIF.Kod_us = case when MOTCONSU.FLAG_USLUGI6=1 then "06" else "0" end or KADIF.Kod_us = case when MOTCONSU.FLAG_USLUGI7=1 then "07" else "0" end or KADIF.Kod_us = case when MOTCONSU.FLAG_USLUGI8=1 then "08" else "0" end or KADIF.Kod_us = case when MOTCONSU.FLAG_USLUGI9=1 then "09" else "0" end or KADIF.Kod_us = case when MOTCONSU.FLAG_USLUGI10=1 then "10" else "0" end or KADIF.Kod_us = case when MOTCONSU.FLAG_USLUGI11=1 then "11" else "0" end or KADIF.Kod_us = case when MOTCONSU.FLAG_USLUGI12=1 then "12" else "0" end or KADIF.Kod_us = case when MOTCONSU.FLAG_USLUGI13=1 then "13" else "0" end or KADIF.Kod_us = case when MOTCONSU.FLAG_USLUGI14=1 then "14" else "0" end or KADIF.Kod_us = case when MOTCONSU.FLAG_USLUGI15=1 then "15" else "0" end or KADIF.Kod_us = case when MOTCONSU.FLAG_USLUGI16=1 then "16" else "0" end or KADIF.Kod_us = case when MOTCONSU.FLAG_USLUGI17=1 then "17" else "0" end or KADIF.Kod_us = case when MOTCONSU.FLAG_USLUGI18=1 then "18" else "0" end or KADIF.Kod_us = case when MOTCONSU.FLAG_USLUGI19=1 then "19" else "0" end or KADIF.Kod_us = case when MOTCONSU.FLAG_USLUGI20=1 then "20" else "0" end )
AND (PATIENTS.INOBLASTNOJ=1)
Ответить с цитированием
Ads
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
помогите с задачами на С, пожалуйста...работаю на visual studio 2005 Barsi Программирование под Windows 1 07.12.2011 01:23
не работаю F-ки юрец_ГФД Любые вопросы от новичков 1 12.09.2011 03:18
Работа с датами как прописать их Semenov SQL 4 13.06.2011 20:20
Беда с ПК Garfield Материнские платы 3 15.01.2010 11:19
Как посчитать количество дней между двумя датами maks_xx C++ Builder 5 30.01.2009 23:30
Программа на подсчет количества дней между датами DonE Вопросы начинающих программистов 13 31.10.2008 23:39
у меня есть столбец с датами определенных событий neutron Visual Basic 2 04.10.2008 23:08
Как работать с разницей между датами Serbery C++ Builder 1 09.01.2008 10:47
Interbase перенос БД на другой компьютер и работа с датами DIMM20 Другие СУБД 2 11.05.2006 15:23
Количество дней между двумя датами Tkela SQL 1 21.06.2005 10:22
Разница между двумя датами Rilken Assembler 0 18.12.2004 11:56
Работа с датами ... Kolka PHP 2 14.11.2003 11:08



Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Нardforum.ru - компьютерный форум и программирование, форум программистов