Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Запрос / 23 сообщений из 23, страница 1 из 1
23.04.2009, 15:07
    #35950136
armin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос
Как мне єто сделать тем sql - ем что поддерживается субд Cache

http://www.sql.ru/forum/actualthread.aspx?tid=658717
...
Рейтинг: 0 / 0
23.04.2009, 15:15
    #35950166
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос
Как вариант сделать пользовательскую функцию (или хранимую процедуру) которая вернет все даты по названию но строкой.
Т.е. колонок как таковых вы не получите.
----------
Cache for Windows (x86-32) 2007.1.3 (Build 607) Wed Oct 17 2007 02:12:09 EDT
...
Рейтинг: 0 / 0
23.04.2009, 15:20
    #35950190
armin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос
krvsaКак вариант сделать пользовательскую функцию (или хранимую процедуру) которая вернет все даты по названию но строкой.
Т.е. колонок как таковых вы не получите.
----------
Cache for Windows (x86-32) 2007.1.3 (Build 607) Wed Oct 17 2007 02:12:09 EDT

буду благодарен за пример или кусок кода ) !
...
Рейтинг: 0 / 0
23.04.2009, 15:21
    #35950199
servit
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос
Код: plaintext
1.
select list("Date" %foreach(Name)) from my.table
LIST
...
Рейтинг: 0 / 0
23.04.2009, 15:33
    #35950233
servit
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос
Если нужен разделитель пробел, то так:
Код: plaintext
1.
select replace(list("Date" %foreach(Name)),',',' ') from my.table
...
Рейтинг: 0 / 0
23.04.2009, 15:54
    #35950316
armin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос
servitЕсли нужен разделитель пробел, то так:
Код: plaintext
1.
select replace(list("Date" %foreach(Name)),',',' ') from my.table


ооо годится пасибо тебе
...
Рейтинг: 0 / 0
23.04.2009, 16:11
    #35950388
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос
armin , вариант с list более предпочтителен. Но там все равно только строка... Колонок не получишь.
...
Рейтинг: 0 / 0
23.04.2009, 16:51
    #35950583
armin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос
krvsa armin , вариант с list более предпочтителен. Но там все равно только строка... Колонок не получишь.

та я понял...ну другово варианта я не знаю....кода заказчику шо то не понравится в отчете куда я вываливаю одной строкой тода буду шо то думать! а пока пусть будет так )
...
Рейтинг: 0 / 0
23.04.2009, 16:54
    #35950603
armin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос
еще вопрос не нашел как можно в сформированой строке с датами упорядочить их по возростанию???
...
Рейтинг: 0 / 0
23.04.2009, 17:12
    #35950664
servit
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос
arminеще вопрос не нашел как можно в сформированой строке с датами упорядочить их по возростанию???
Код: plaintext
1.
select Name,replace(list("Date" %foreach(Name)),',',' ') ListOfDates from my.table order by Name,"Date"
...
Рейтинг: 0 / 0
23.04.2009, 17:30
    #35950729
armin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос
servitarminеще вопрос не нашел как можно в сформированой строке с датами упорядочить их по возростанию???
Код: plaintext
1.
select Name,replace(list("Date" %foreach(Name)),',',' ') ListOfDates from my.table order by Name,"Date"


неее єто понятно......а как внутри одной строки столбца ListOfDates упорядочить выбранные даты

Пример:
столбец1................................................................столбец2
Светолечение........2009-04-22 01:35:00|2009-04-23 00:30:00|2009-04-23 01:05:00|2009-04-21 00:45:00

как в столбце2 мне даты упорядочить
...
Рейтинг: 0 / 0
23.04.2009, 17:46
    #35950781
servit
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос
Вышеприведённый запрос именно это и делает. Если "Date" из order by убрать, то даты в строке будут неупорядочены.
...
Рейтинг: 0 / 0
23.04.2009, 17:53
    #35950802
armin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос
servitВышеприведённый запрос именно это и делает. Если "Date" из order by убрать, то даты в строке будут неупорядочены.

Мой пример:

select distinct
FavourRealization->Favour->NameUsl,
replace(list("DateRealization" %foreach(FavourRealization->Favour->NameUsl)),',','|') ListOfDates

from DAYHOSPITAL.ToolsLabLechMedSettings

where (FavourRealization->Diary->idCardF0032->%ID = 8)

order by FavourRealization->Favour->NameUsl, "DateRealization"

Результат:
столб1..........................................................................столб2
Светолечение....2009-04-22 01:35:00|2009-04-23 00:30:00|2009-04-23 01:05:00|2009-04-21 00:45:00

не упорядочивается!! ((
...
Рейтинг: 0 / 0
23.04.2009, 17:58
    #35950823
servit
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос
Какая версия Caché ($ZV)?
Я тестировал на версии 2009.1.FT3
...
Рейтинг: 0 / 0
23.04.2009, 18:06
    #35950857
armin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос
servitКакая версия Caché ($ZV)?
Я тестировал на версии 2009.1.FT3

2008.2.0.472.0
...
Рейтинг: 0 / 0
23.04.2009, 18:19
    #35950883
servit
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос
Такой версии не имею, но в версии 2008.2.1.902 тоже работает правильно.
Код: plaintext
1.
2.
3.
4.
5.
Class del.a Extends %Persistent
{
Property Name As %String;
Property Date As %TimeStamp;
}
IDNameDate1a2000-01-02 12:00:00.12a2000-01-02 12:00:00.03b2000-01-03 12:00:00.04b1990-01-03 12:00:00.0

PS: "DateRealization" заключать в кавычки необязательно, так как это не зарезервированное слово.
...
Рейтинг: 0 / 0
23.04.2009, 18:40
    #35950943
armin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос
servitТакой версии не имею, но в версии 2008.2.1.902 тоже работает правильно.
Код: plaintext
1.
2.
3.
4.
5.
Class del.a Extends %Persistent
{
Property Name As %String;
Property Date As %TimeStamp;
}
IDNameDate1a2000-01-02 12:00:00.12a2000-01-02 12:00:00.03b2000-01-03 12:00:00.04b1990-01-03 12:00:00.0

PS: "DateRealization" заключать в кавычки необязательно, так как это не зарезервированное слово.

да у меня примерно такая табличка и типы свойств такие же.....бог его знает че не сортирует
походу кеше другой нада ставить будет )) .....или я где то напортачил
...
Рейтинг: 0 / 0
23.04.2009, 18:46
    #35950959
servit
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос
arminservitКакая версия Caché ($ZV)?
Я тестировал на версии 2009.1.FT3

2008.2.0.472.0
А это разве релиз? По-моему, это один из Field Test'ов со всеми вытекающими.
...
Рейтинг: 0 / 0
24.04.2009, 12:03
    #35952149
armin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос
servitarminservitКакая версия Caché ($ZV)?
Я тестировал на версии 2009.1.FT3

2008.2.0.472.0
А это разве релиз? По-моему, это один из Field Test'ов со всеми вытекающими.

поставил релиз 2008 го 2008.2.2.922.0............серавно не сортирует!!
...
Рейтинг: 0 / 0
24.04.2009, 12:30
    #35952253
servit
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос
Мой пример у Вас работает?
...
Рейтинг: 0 / 0
24.04.2009, 13:41
    #35952528
armin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос
servitМой пример у Вас работает?

да!!!
...
Рейтинг: 0 / 0
24.04.2009, 15:19
    #35952827
servit
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос
Похоже, что план запроса изменился из-за наличия неявных соединений.
Можно сделать вычисляемые поля в классе DAYHOSPITAL.ToolsLabLechMedSettings :
Код: plaintext
1.
2.
Property NameUsl As %String [ Calculated, SqlComputeCode = {set {*}=##class(DAYHOSPITAL.ToolsLabLechMedSettings).%OpenId({ID}).FavourRealization.Favour.NameUsl}, SqlComputed, SqlFieldName = c_NameUsl ];
Property idCardF0032 As %String [ Calculated, SqlComputeCode = {set {*}=##class(DAYHOSPITAL.ToolsLabLechMedSettings).%OpenId({ID}).FavourRealization.Diary.idCardF0032.%Id()}, SqlComputed, SqlFieldName = c_idCardF0032 ];
Запрос примет вид:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
select distinct c_NameUsl,
replace(list(DateRealization %foreach(c_NameUsl)),',','|') ListOfDates

from DAYHOSPITAL.ToolsLabLechMedSettings

where c_idCardF0032= 8 

order by c_NameUsl, DateRealization

Либо последовать совету krvsa , если нужен универсальный вариант. А ещё лучше обратиться в WRC .
...
Рейтинг: 0 / 0
27.04.2009, 11:27
    #35955473
armin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос
Есть....я попедил а вернее МЫ (теперь можно сортировать данные внутри листа)

Property ListDateForNameUsl As %String [ Calculated, SqlComputeCode = {set {ListDateForNameUsl}=##class(DAYHOSPITAL.ToolsLabLechMedSettings).%OpenId({ID}).ListDateForNameUslget(##class(DAYHOSPITAL.ToolsLabLechMedSettings).%OpenId({ID}).FavourRealization.Favour.NameUsl)}, SqlComputed ];

ClassMethod ListDateForNameUslget(NameUsl As %String)
{
s queryMatching="SELECT DateRealization,FavourRealization->Favour->NameUsl As NameUsl FROM DAYHOSPITAL.ToolsLabLechMedSettings Where FavourRealization->Favour->NameUsl=?Order By DateRealization asc"
s rsetMatching=##class(%ResultSet).%New("%DynamicQuery:SQL")
s scMatching=rsetMatching.Prepare(queryMatching)
s scMatching=rsetMatching.Execute(NameUsl)
s outList=""
WHILE rsetMatching.Next()
{
s outList=outList_rsetMatching.Get("DateRealization")_"|"
}
q outList
}


Query GetToolsLabLechMedByCardID(cardID As %String) As %SQLQuery(CONTAINID = 1) [ SqlProc ]
{
select distinct
FavourRealization->Favour->NameUsl as NameUsl,
ListDateForNameUsl
from DAYHOSPITAL.ToolsLabLechMedSettings
where (FavourRealization->Diary->idCardF0032->%ID = :cardID)
order by NameUsl asc
}
...
Рейтинг: 0 / 0
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Запрос / 23 сообщений из 23, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]