|
помогите с запросом
|
|||
---|---|---|---|
#18+
Привет знатокам запросов :-) прошу тапками сразу не кидаться sql плохо знаю! а тут еще и сервер на каше :-) значит задача следущая! взять следущею дату за последней датой указанной в фирме по отчетам! допустим имеется таблица idid-firmddmmyyyy170101012010270117032010380523042011480501012012580514022012682312092013 -------------------- результат запроса должен получится следующий idid-firmddmmyyyy170118(17)032010280515(14)022012382313(12)092013 в скобках указал даты которые были в начальной таблице ... |
|||
:
Нравится:
Не нравится:
|
|||
10.07.2013, 08:05 |
|
помогите с запросом
|
|||
---|---|---|---|
#18+
названия полей поменяла, а запрос должно быть такой: Код: sql 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
10.07.2013, 08:27 |
|
помогите с запросом
|
|||
---|---|---|---|
#18+
Владимир :-) Код: vbnet 1.
Это все отдельные поля? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.07.2013, 08:28 |
|
помогите с запросом
|
|||
---|---|---|---|
#18+
проверьте как сработает у вас, если дата приходится на конец месяца, т.е. было 30.06 должно стать 1.07 ... |
|||
:
Нравится:
Не нравится:
|
|||
10.07.2013, 08:30 |
|
помогите с запросом
|
|||
---|---|---|---|
#18+
krvsaВладимир :-) Код: vbnet 1.
Это все отдельные поля? именно, в этом и есть вся проблема что это отдельные поля! :( ... |
|||
:
Нравится:
Не нравится:
|
|||
10.07.2013, 08:31 |
|
помогите с запросом
|
|||
---|---|---|---|
#18+
krvsaВладимир :-) Код: vbnet 1.
Это все отдельные поля? навряд ли, во первых какой в этом смысл, во вторых в названии св-ва не может быть точки "." :) ... |
|||
:
Нравится:
Не нравится:
|
|||
10.07.2013, 08:32 |
|
помогите с запросом
|
|||
---|---|---|---|
#18+
Аленочка , если "дата" у автора 3 отдельных поля - твой запрос у него не сработает... ... |
|||
:
Нравится:
Не нравится:
|
|||
10.07.2013, 08:32 |
|
помогите с запросом
|
|||
---|---|---|---|
#18+
Владимир :-)это отдельные поля! :( Ясно... Ща прикинем как тут разрулиться... ... |
|||
:
Нравится:
Не нравится:
|
|||
10.07.2013, 08:34 |
|
помогите с запросом
|
|||
---|---|---|---|
#18+
Аленочкаkrvsaпропущено... Это все отдельные поля? навряд ли, во первых какой в этом смысл, во вторых в названии св-ва не может быть точки "." :) это отдельные поля! точек в реальности нету! просто когда печатал они тут сами поставились! ... |
|||
:
Нравится:
Не нравится:
|
|||
10.07.2013, 08:34 |
|
помогите с запросом
|
|||
---|---|---|---|
#18+
Владимир :-)krvsaпропущено... Это все отдельные поля? именно, в этом и есть вся проблема что это отдельные поля! :( переведите все ваши отдельные поля в одну дату в формат "horolog" обратно, я надеюсь, новую дату вы не будете разбивать на составляющие? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.07.2013, 08:35 |
|
помогите с запросом
|
|||
---|---|---|---|
#18+
АленочкаВладимир :-)пропущено... именно, в этом и есть вся проблема что это отдельные поля! :( переведите все ваши отдельные поля в одну дату в формат "horolog" обратно, я надеюсь, новую дату вы не будете разбивать на составляющие? очень смешно :-) я обычный рабочий которому дали задание! базу я не состовлял и изменить мне ее не кто не разрешит! так что надо искать другой выход! ... |
|||
:
Нравится:
Не нравится:
|
|||
10.07.2013, 08:38 |
|
помогите с запросом
|
|||
---|---|---|---|
#18+
Владимир :-) , как вариант... Склеить те поля в строку типа "дата"... Воспользоваться функцией TO_DATE()... http://docs.intersystems.com/cache20131/csp/docbook/DocBook.UI.Page.cls?KEY=RSQL_todate А далее по сченарию от Аленочка . ... |
|||
:
Нравится:
Не нравится:
|
|||
10.07.2013, 08:39 |
|
помогите с запросом
|
|||
---|---|---|---|
#18+
я бы сделала расчетное св-во в классе где сама дата хранится, которое "соберет" мне нужную дату из частей и юзала бы в запросе именно это расчетное св-во, т.е. дату преобразование: set dateOfH = $zdateh(mm_"."_dd_"."_yyyy,5) ... |
|||
:
Нравится:
Не нравится:
|
|||
10.07.2013, 08:40 |
|
помогите с запросом
|
|||
---|---|---|---|
#18+
Аленочкая бы сделала расчетное св-во в классе Автору не нужно менять класс. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.07.2013, 08:40 |
|
помогите с запросом
|
|||
---|---|---|---|
#18+
Владимир :-)очень смешно :-) я обычный рабочий которому дали задание! базу я не состовлял и изменить мне ее не кто не разрешит! так что надо искать другой выход! я имела ввиду "виртуально" перевести с помощью запроса или расчетного свойства ... |
|||
:
Нравится:
Не нравится:
|
|||
10.07.2013, 08:44 |
|
помогите с запросом
|
|||
---|---|---|---|
#18+
krvsaАленочкая бы сделала расчетное св-во в классе Автору не нужно менять класс. SqlProc тоже подойдет, я предложила свои варианты вдруг эта дата автору кроме одного отчета еще где-нибудь понадобится исключительно пишу по собственному опыту, а так можно и через функции преобразования sql ... |
|||
:
Нравится:
Не нравится:
|
|||
10.07.2013, 08:46 |
|
помогите с запросом
|
|||
---|---|---|---|
#18+
Владимир :-) , пробуй это... Код: sql 1. 2. 3. 4. 5. 6. 7. 8.
... |
|||
:
Нравится:
Не нравится:
|
|||
10.07.2013, 08:47 |
|
помогите с запросом
|
|||
---|---|---|---|
#18+
АленочкаSqlProc тоже подойдет А для этого класс менять не надо? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.07.2013, 08:47 |
|
помогите с запросом
|
|||
---|---|---|---|
#18+
krvsa Владимир :-) , пробуй это... Код: sql 1. 2. 3. 4. 5. 6. 7. 8.
попробовал сделать так ругается что " поле indat не найдено в обрабатываемой таблице" ... |
|||
:
Нравится:
Не нравится:
|
|||
10.07.2013, 09:22 |
|
помогите с запросом
|
|||
---|---|---|---|
#18+
Владимир :-)это отдельные поля! точек в реальности нету! просто когда печатал они тут сами поставились!Исправил. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.07.2013, 09:39 |
|
помогите с запросом
|
|||
---|---|---|---|
#18+
servitВладимир :-)это отдельные поля! точек в реальности нету! просто когда печатал они тут сами поставились!Исправил. спасибо :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
10.07.2013, 09:42 |
|
помогите с запросом
|
|||
---|---|---|---|
#18+
Владимир :-)ругается что " поле indat не найдено в обрабатываемой таблице" Тогда готовь тестовый пример класса с его заполнением данными - бум тестить у себя... ... |
|||
:
Нравится:
Не нравится:
|
|||
10.07.2013, 09:52 |
|
помогите с запросом
|
|||
---|---|---|---|
#18+
А если без indat попробовать? Код: sql 1. 2. 3. 4. 5. 6. 7.
... |
|||
:
Нравится:
Не нравится:
|
|||
10.07.2013, 10:00 |
|
помогите с запросом
|
|||
---|---|---|---|
#18+
Владимир :-) , Исходные данныеClass demo.test Extends %Persistent { Property idfirm As %Integer [ SqlFieldName = "id-firm" ]; Property dd As %String; Property mm As %String; Property yyyy As %String; ClassMethod Test() { &sql(truncate table demo.test) &sql(insert into demo.test("id-firm",dd,mm,yyyy) values(701,'01','01',2010)) &sql(insert into demo.test("id-firm",dd,mm,yyyy) values(701,'17','03',2010)) &sql(insert into demo.test("id-firm",dd,mm,yyyy) values(805,'23','04',2011)) &sql(insert into demo.test("id-firm",dd,mm,yyyy) values(805,'01','01',2012)) &sql(insert into demo.test("id-firm",dd,mm,yyyy) values(805,'14','02',2012)) &sql(insert into demo.test("id-firm",dd,mm,yyyy) values(823,'12','09',2013)) } }Запросselect id, "id-firm", lpad(day(max(to_date(yyyy||mm||dd,'yyyymmdd'))+1),2,'0') dd, lpad(month(max(to_date(yyyy||mm||dd,'yyyymmdd'))+1),2,'0') mm, lpad(year(max(to_date(yyyy||mm||dd,'yyyymmdd'))+1),4,'0') yyyy from demo.test group by "id-firm"Результат:IDid-firmddmmyyyy170118032010380515022012682313092013 ... |
|||
:
Нравится:
Не нравится:
|
|||
10.07.2013, 10:13 |
|
помогите с запросом
|
|||
---|---|---|---|
#18+
Мои 5 копеек... Класс Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17.
Заполнение Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17.
Запрос... Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19.
... |
|||
:
Нравится:
Не нравится:
|
|||
10.07.2013, 10:18 |
|
помогите с запросом
|
|||
---|---|---|---|
#18+
Или такselect id, "id-firm", lpad(day(tmp),2,'0') dd, lpad(month(tmp),2,'0') mm, lpad(year(tmp),4,'0') yyyy from (select id,"id-firm", max(to_date(yyyy||mm||dd,'yyyymmdd'))+1 tmp from demo.test group by "id-firm") ... |
|||
:
Нравится:
Не нравится:
|
|||
10.07.2013, 10:18 |
|
помогите с запросом
|
|||
---|---|---|---|
#18+
krvsa , Вы полагаете, записав 0 9 в числовое поле, в нём это же значение и останется? Где разбивка конечного поля на три поля и дополнение дня и месяца нулями? И зачем ТС время в поле outdat? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.07.2013, 10:29 |
|
помогите с запросом
|
|||
---|---|---|---|
#18+
servitВы полагаете, записав 0 9 в числовое поле, в нём это же значение и останется? На том, что я смотрел, это работает... servitГде разбивка конечного поля на три поля и дополнение дня и месяца нулями? Я такой задачи перед собой не ставил... servitИ зачем ТС время в поле outdat? На том, что я смотрел, времени не видел... ... |
|||
:
Нравится:
Не нравится:
|
|||
10.07.2013, 10:34 |
|
помогите с запросом
|
|||
---|---|---|---|
#18+
servitВы полагаете, записав 0 9 в числовое поле, в нём это же значение и останется? Вот что записалось (см.картинку)... ... |
|||
:
Нравится:
Не нравится:
|
|||
10.07.2013, 10:36 |
|
помогите с запросом
|
|||
---|---|---|---|
#18+
servitВы полагаете, записав 0 9 в числовое поле, в нём это же значение и останется? Т.ч. не пойму пока суть замечания... ... |
|||
:
Нравится:
Не нравится:
|
|||
10.07.2013, 10:38 |
|
помогите с запросом
|
|||
---|---|---|---|
#18+
krvsaНа том, что я смотрел, это работает...Автор указал дни и месяцы с нулями => это должны быть строки. krvsaНа том, что я смотрел, времени не видел... DATEADD выдаёт тип timestamp, а не date, поэтому время выдаётся и в Портале, и в JDBC-клиентах. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.07.2013, 10:44 |
|
помогите с запросом
|
|||
---|---|---|---|
#18+
servitkrvsaНа том, что я смотрел, это работает...Автор указал дни и месяцы с нулями => это должны быть строки. Вона че! servitkrvsaНа том, что я смотрел, времени не видел... DATEADD выдаёт тип timestamp, а не date, поэтому время выдаётся и в Портале, и в JDBC-клиентах. Могу только повториться. На том, что я смотрел, времени не видел... Но так или иначе, в твоем примере показано как дополнять нулями... ... |
|||
:
Нравится:
Не нравится:
|
|||
10.07.2013, 10:49 |
|
помогите с запросом
|
|||
---|---|---|---|
#18+
krvsaМогу только повториться. На том, что я смотрел, времени не видел...Если не секрет: чем Вы смотрели? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.07.2013, 10:53 |
|
помогите с запросом
|
|||
---|---|---|---|
#18+
servitчем Вы смотрели? Дык у нас свой SQL-навигатор... Я его предлагал тут где-то на форуме. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.07.2013, 13:50 |
|
помогите с запросом
|
|||
---|---|---|---|
#18+
Вот что я вижу (см.картинку)... ... |
|||
:
Нравится:
Не нравится:
|
|||
10.07.2013, 13:53 |
|
помогите с запросом
|
|||
---|---|---|---|
#18+
krvsaДык у нас свой SQL-навигатор...Не уверен, что он есть у всех и что многие именно им проверяют свои запросы. Думаю, для таких целей лучше всё же использовать стандартные инструменты. PS: кстати, надо доработать, чтобы в полях типа timestamp показывалось и время. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.07.2013, 13:58 |
|
помогите с запросом
|
|||
---|---|---|---|
#18+
servitНе уверен, что он есть у всех и что многие именно им проверяют свои запросы. Им ничего не мешает приобрести его у нас... servitДумаю, для таких целей лучше всё же использовать стандартные инструменты. Это уже каждый решает самостоятельно... servitкстати, надо доработать, чтобы в полях типа timestamp показывалось и время. Возможно... Но пока такой надобности у нас небыло... ... |
|||
:
Нравится:
Не нравится:
|
|||
10.07.2013, 14:06 |
|
помогите с запросом
|
|||
---|---|---|---|
#18+
krvsaВот что я вижу (см.картинку)...А теперь то же самое в Портале (режим отображения не важен) или Caché Monitor ...
... |
|||
:
Нравится:
Не нравится:
|
|||
10.07.2013, 14:10 |
|
помогите с запросом
|
|||
---|---|---|---|
#18+
servitselect dateadd('dd',1,current_date) 11.07.2013 servitselect dateadd('hh',1,current_date) 10.07.2013 1:00:00 ... |
|||
:
Нравится:
Не нравится:
|
|||
10.07.2013, 14:23 |
|
помогите с запросом
|
|||
---|---|---|---|
#18+
servitА теперь то же самое в Портале В портале вот... Код: javascript 1. 2. 3. 4. 5.
Фиговый портал... ... |
|||
:
Нравится:
Не нравится:
|
|||
10.07.2013, 14:26 |
|
помогите с запросом
|
|||
---|---|---|---|
#18+
servit Владимир :-) , Запросselect id, "id-firm", lpad(day(max(to_date(yyyy||mm||dd,'yyyymmdd'))+1),2,'0') dd, lpad(month(max(to_date(yyyy||mm||dd,'yyyymmdd'))+1),2,'0') mm, lpad(year(max(to_date(yyyy||mm||dd,'yyyymmdd'))+1),4,'0') yyyy from demo.test group by "id-firm"Результат:IDid-firmddmmyyyy170118032010380515022012682313092013 Сделал по вашему примеру запрос! почти обрадовался :-) работает корректно только если месяц и день начинаются не с "0" если же месяц или день в диапозоне от "01" до "09" то выдается полнейшая чушь! дальше когда дни и месяца начинаются с 10 то все работает корректно! в чем проблемка?? и что такое lpad для чего нужно и как это работает? :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
11.07.2013, 07:18 |
|
помогите с запросом
|
|||
---|---|---|---|
#18+
с lpad прочитал понял что такое! :-) как я понял он тут только для коректировки ошибок :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
11.07.2013, 07:30 |
|
помогите с запросом
|
|||
---|---|---|---|
#18+
Владимир :-)работает корректно только если месяц и день начинаются не с "0" если же месяц или день в диапозоне от "01" до "09" то выдается полнейшая чушь!Вы пробовали на моём классе или на своём? Проблемы скорее всего из-за неверных типов данных: Вы ведь не указали описание Вашего класса/таблицы, а только данные, поэтому здесь приходится только догадываться о типе данных по их "внешнему виду". Сделайте готовый тестовый пример по аналогии с моим, выложите сюда, и тогда всё прояснится. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.07.2013, 08:49 |
|
|
start [/forum/topic.php?all=1&fid=39&tid=1557109]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
143ms |
get topic data: |
14ms |
get forum data: |
3ms |
get page messages: |
73ms |
get tp. blocked users: |
2ms |
others: | 14ms |
total: | 282ms |
0 / 0 |