Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Помогите, пожалуйста с запросом
|
|||
|---|---|---|---|
|
#18+
Здравствуйте Третий день ломаю голову над преображением таблицы. Сейчас объясню на пальцах. Бурят скважину, из нее вытаскивают керн и геолог его описывает. У него программа состоит из четырех вкладок, на каждой вкладке свои "от-до", чтобы знать о каком интервале идет речь. Сама таблица выглядит так declare @GEODETAIL table (Holeid varchar(20), geolfrom float, geolto float, name varchar(20),value varchar(20)) insert into @GEODETAIL (holeid, geolfrom, geolto, name, value) values ('hr-1',0,8,'Lith_RockName','Песчанник'), ('hr-1',8,50,'Lith_RockName','Алевролит'), ('hr-1',50,100,'Lith_RockName','Известняк'), ('hr-1',100,108,'Lith_RockName','Гравелиты'), ('hr-1',108,200,'Lith_RockName','Алевролиты'), ('hr-1',0,5,'Sec_RockName','Глина'), ('hr-1',30,38,'Alt_RockName','Переслаивание'), ('hr-1',120,180,'Min_RockName','Минерализация'), ('hr-1',190,200,'Min_RockName','Минерализация') select * from @GEODETAIL Но в таком виде она не читаема, как мне ее переделать в такую как на картинке? Самое главные чтобы подынтервали совпадали с основным интервалом? Кажется у меня кривые руки... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2018, 07:12 |
|
||
|
Помогите, пожалуйста с запросом
|
|||
|---|---|---|---|
|
#18+
Очень прошу вас помочь...Я уже с ума схожу - ничего не получается... Добрый, Копеллы, Дамирович и другие гуру эскюэля...Я вас очень жду))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2018, 07:14 |
|
||
|
Помогите, пожалуйста с запросом
|
|||
|---|---|---|---|
|
#18+
katish444, Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2018, 07:52 |
|
||
|
Помогите, пожалуйста с запросом
|
|||
|---|---|---|---|
|
#18+
Kopelly, спасибо большое Эх как бы мне научится такому виртуозному владению Буду сейчас изучать скрипт, может если пойму, то в будущем и сама смогу ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2018, 08:46 |
|
||
|
Помогите, пожалуйста с запросом
|
|||
|---|---|---|---|
|
#18+
Подскажи пожалуйста, а как избежать дублирование первого столбца, ну чтобы вместо дубликатов тоже NULL был Kopellykatish444, Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2018, 08:54 |
|
||
|
Помогите, пожалуйста с запросом
|
|||
|---|---|---|---|
|
#18+
katish444как Kopellykatish444, Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. так ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2018, 09:17 |
|
||
|
Помогите, пожалуйста с запросом
|
|||
|---|---|---|---|
|
#18+
Добрый Э - Эх, все равно дублирует ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2018, 09:42 |
|
||
|
Помогите, пожалуйста с запросом
|
|||
|---|---|---|---|
|
#18+
Добрый Э - Эх, тьфу, не то вообще приложила ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2018, 09:43 |
|
||
|
Помогите, пожалуйста с запросом
|
|||
|---|---|---|---|
|
#18+
katish444, так я тебе на примере поля holeid показал общий подход к реализации твоей хотелки в виде нового поля x_holeid. уж на остальные поля, будь добра, распиши сама... копи-паст + замена имени столбца, думается, посильная для тебя операция? можно по принципу товарища Kopelly - в outer apply запихать и выводить в том виде, в каком нужно... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2018, 10:03 |
|
||
|
Помогите, пожалуйста с запросом
|
|||
|---|---|---|---|
|
#18+
да, спасибо я поняла. С меня шоколадка))Добрый Э - Эхkatish444, так я тебе на примере поля holeid показал общий подход к реализации твоей хотелки в виде нового поля x_holeid. уж на остальные поля, будь добра, распиши сама... копи-паст + замена имени столбца, думается, посильная для тебя операция? можно по принципу товарища Kopelly - в outer apply запихать и выводить в том виде, в каком нужно... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2018, 10:09 |
|
||
|
Помогите, пожалуйста с запросом
|
|||
|---|---|---|---|
|
#18+
Хотя я вам уже не просто шоколадку, а ящик коньяка должна))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2018, 10:10 |
|
||
|
Помогите, пожалуйста с запросом
|
|||
|---|---|---|---|
|
#18+
Добрый Э - Эхkatish444, так я тебе на примере поля holeid показал общий подход к реализации твоей хотелки в виде нового поля x_holeid. уж на остальные поля, будь добра, распиши сама... копи-паст + замена имени столбца, думается, посильная для тебя операция? можно по принципу товарища Kopelly - в outer apply запихать и выводить в том виде, в каком нужно... Я изменила, но теперь наоборот много чего пропало. Подскажи пожалуйста что не так? select case row_number() over(partition by a.holeid order by a.geolfrom) when 1 then a.holeid end as x_holeid, case row_number() over(partition by a.geolfrom order by a.geolfrom) when 1 then a.GEOLFROM end as geol_from, case row_number() over(partition by a.geolto order by a.geolfrom) when 1 then a.GEOLTO end as geol_to, case row_number() over(partition by a.value order by a.geolfrom) when 1 then a.VALUE end as Lith_RockNameee, a.GEOLFROM,a.GEOLTO,a.VALUE as Lith_RockName ,geolfrom_sec,geolto,Lith3_RockName,geolfrom_alt,geolto_alt,Alteration,geolfrom_min,geolto_min,Mineralisation from GEODETAILS a outer apply (Select * From (Select geolfrom as geolfrom_sec, geolto as geolto_sec, value as 'Lith3_RockName', row_number() over (order by geolfrom) as rn_sec From GEODETAILS b Where a.holeid = b.holeid and b.name = 'Lith3_RockName' and a.geolto>b.geolfrom and a.geolfrom<=b.geolto) Sec full join (Select geolfrom as geolfrom_alt, geolto as geolto_alt, value as 'Alteration', row_number() over (order by geolfrom) as rn_alt From GEODETAILS b Where a.holeid = b.holeid and b.name = 'Alteration' and a.geolto>b.geolfrom and a.geolfrom<=b.geolto) alt on rn_sec = rn_alt full join (Select geolfrom as geolfrom_min, geolto as geolto_min, value as 'Mineralisation', row_number() over (order by geolfrom) as rn_min From GEODETAILS b Where a.holeid = b.holeid and b.name = 'Mineralisation' and a.geolto>b.geolfrom and a.geolfrom<=b.geolto) min on isnull(rn_sec,rn_alt) = rn_min ) others WHere a.name = 'Lith_RockName' and holeid='uzuz-17-002'order by a.GEOLFROM ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2018, 13:53 |
|
||
|
Помогите, пожалуйста с запросом
|
|||
|---|---|---|---|
|
#18+
katish444, А если так: select case row_number() over(partition by a.holeid order by a.geolfrom) when 1 then a.holeid end as x_holeid, case row_number() over(partition by a.holeid, a.geolfrom order by a.geolfrom) when 1 then a.GEOLFROM end as geol_from, case row_number() over(partition by a.holeid,a.geolfrom, a.geolto order by a.geolfrom) when 1 then a.GEOLTO end as geol_to, case row_number() over(partition by a.holeid,a.geolfrom,a.geolto, a.value order by a.geolfrom) when 1 then a.VALUE end as Lith_RockNameee, ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2018, 13:59 |
|
||
|
Помогите, пожалуйста с запросом
|
|||
|---|---|---|---|
|
#18+
Урра! Все как нужно! Пойду в пляс! Спасибо огромнейшее Kopellykatish444, А если так: select case row_number() over(partition by a.holeid order by a.geolfrom) when 1 then a.holeid end as x_holeid, case row_number() over(partition by a.holeid, a.geolfrom order by a.geolfrom) when 1 then a.GEOLFROM end as geol_from, case row_number() over(partition by a.holeid,a.geolfrom, a.geolto order by a.geolfrom) when 1 then a.GEOLTO end as geol_to, case row_number() over(partition by a.holeid,a.geolfrom,a.geolto, a.value order by a.geolfrom) when 1 then a.VALUE end as Lith_RockNameee, ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2018, 14:01 |
|
||
|
Помогите, пожалуйста с запросом
|
|||
|---|---|---|---|
|
#18+
Теперь в других столбцах дублирует... Рада я рабовалась Теперь остальные столбцы засунуть в CASE, но так почему то не срабатывает... Kopellykatish444, А если так: select case row_number() over(partition by a.holeid order by a.geolfrom) when 1 then a.holeid end as x_holeid, case row_number() over(partition by a.holeid, a.geolfrom order by a.geolfrom) when 1 then a.GEOLFROM end as geol_from, case row_number() over(partition by a.holeid,a.geolfrom, a.geolto order by a.geolfrom) when 1 then a.GEOLTO end as geol_to, case row_number() over(partition by a.holeid,a.geolfrom,a.geolto, a.value order by a.geolfrom) when 1 then a.VALUE end as Lith_RockNameee, ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2018, 14:14 |
|
||
|
Помогите, пожалуйста с запросом
|
|||
|---|---|---|---|
|
#18+
вы явно ерундой занимаетесь, вместо этого бы взяли бы Excel и вытащили бы данные с SQL. там есть специальные средства для анализа, или посмотрите в сторону BI ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2018, 14:17 |
|
||
|
Помогите, пожалуйста с запросом
|
|||
|---|---|---|---|
|
#18+
Программа в которой я работаю понимает только SQL и работать с экселем не умеет Konst_Oneвы явно ерундой занимаетесь, вместо этого бы взяли бы Excel и вытащили бы данные с SQL. там есть специальные средства для анализа, или посмотрите в сторону BI ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2018, 14:20 |
|
||
|
Помогите, пожалуйста с запросом
|
|||
|---|---|---|---|
|
#18+
katish444, Замени во всех (трёх) местах and a.geolto>b.geolfrom and a.geolfrom <= b.geolto На and a.geolto>b.geolfrom and a.geolfrom < b.geolto ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2018, 14:24 |
|
||
|
Помогите, пожалуйста с запросом
|
|||
|---|---|---|---|
|
#18+
Kopelly, Лишние повторы уйдут, а нужные (которые идут на несколько основных интервалов) - остануться ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2018, 14:26 |
|
||
|
Помогите, пожалуйста с запросом
|
|||
|---|---|---|---|
|
#18+
К сожалению, не сработало. Все заменила. Сейчас попробую для всех CASE создать Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. KopellyKopelly, Лишние повторы уйдут, а нужные (которые идут на несколько основных интервалов) - остануться ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2018, 14:32 |
|
||
|
Помогите, пожалуйста с запросом
|
|||
|---|---|---|---|
|
#18+
katish444К сожалению, не сработало. Все заменила. Сейчас попробую для всех CASE создать Покажи результат. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2018, 14:34 |
|
||
|
Помогите, пожалуйста с запросом
|
|||
|---|---|---|---|
|
#18+
всё равно советую в сторону MS BI посмотреть, у вас же чистый OLAP ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2018, 14:35 |
|
||
|
Помогите, пожалуйста с запросом
|
|||
|---|---|---|---|
|
#18+
Kopellykatish444К сожалению, не сработало. Все заменила. Сейчас попробую для всех CASE создать Покажи результат. Я поняла. Минерализация по идее не бьет с основным интервалом, поэтому она попадает в оба интервала Так что скрипт идеален, это просто особенность данных)) ) Спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2018, 06:21 |
|
||
|
|

start [/forum/topic.php?fid=46&msg=39593731&tid=1690370]: |
0ms |
get settings: |
9ms |
get forum list: |
17ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
29ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
54ms |
get tp. blocked users: |
1ms |
| others: | 247ms |
| total: | 372ms |

| 0 / 0 |
