powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Не выводит существующие значения
7 сообщений из 7, страница 1 из 1
Не выводит существующие значения
    #39586832
katish444
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Уважаемые форумчани. Пытаюсь сделать сводную таблицу, но у меня не выходит. Есть таблицы
Первая HOLECOORD (holeid, projectcode, coordinateset, x,y,z)
Вторая HOLEDETAILS (holeid, projectcode, name, value)
Третья DRILLHOLEDIAMDETAILS (holeid, projectcode, name, value)
Четвертая HOLESURVEY (holeid, projectcode, depth, azimuth, dip, azimuthGridName)
Пятая DRILLINGDETAIL (drillingdate, shift, holeid, projectcode, name, value)

Нужно из этих таблиц сделать сводную таблицу, какие скважины бурили на месторождении UZ к примеру 28 октября

Скрипт отображает все, кроме азимута и угла (Azimuth, dip) Наверное, это потому что замеры делали много раз на одну скважину, поэтому, а мне нужен только первый, поэтому я использовала min, или потому что у этой таблицы нет дат никаких и при указании даты не работает... Когда из условия убираю дату, то работает (дублируется правда по сто раз, но работает)
Помогите, пожалуйста
P.s. просьба к формату даты не цеплятся, программа в которой я работаю понимает именно такие даты, изменения в формата в DATE ничего не дает и не меняет работу скрипта

Вот такой у меня скрипт:
select distinct h.holeID, hcd.X, hcd.Y,s.AZIMUTH, s.DIP, h.projectcode,dd.DRILLINGDATE,
max(case when dr.name = 'DrillRigModel' then dr.Value end) as DrillRigModel,
max(case when hd.name = 'Depth_Project' then hd.Value END) as Depth_Project,
max(case when hd.name = 'Drill_Date_Start' then hd.Value END)as Drill_Date_Start
from HOLEDETAILS hd left join
DRILLHOLEDIAMDETAILS dr on dr.HOLEID=hd.HOLEID left join holelocation h on h.HOLEID=hd.HOLEID
left join ( select distinct hs1.Holeid, hs1.Depth, hs1.AZIMUTH, hs1.DIP from HOLESURVEY hs1 inner join
(select distinct hs2.Holeid, min(hs2.Depth)D from HOLESURVEY hs2 group by hs2.Holeid)hs on hs.Holeid=hs1.Holeid and hs.D=hs1.Depth group by hs.Holeid, hs1.Holeid, hs1.Depth, hs1.AZIMUTH, hs1.DIP)s on h.HOLEID=s.HOLEID
left join DRILLINGDETAIL dd on dd.holeid=hd.HOLEID
left join (select holeid, projectcode, round(x,2)X ,round(y,2)Y,round(z,2)Z
from HOLECOORD where coordinateset = 'WGS84_Zone_43N_Plan')hcd on hcd.holeid=h.holeid and h.projectcode=h.projectcode
where h.projectcode = 'uz' and DRILLINGDATE = '2ct-2017'
GROUP BY
h.holeID, h.projectcode, hcd.X, hcd.Y,s.AZIMUTH, s.DIP,dd.DRILLINGDATE
...
Рейтинг: 0 / 0
Не выводит существующие значения
    #39586843
katish444,

не понятно, что именно тебе нужно...
если нужно выбрать только первую строку в группе, то можно почитать тут ...
если нужно что-то другое - объясни, что именно. и лучше не на примере неработающего запроса, а с тестовыми данными и желаемым результатом на них...
...
Рейтинг: 0 / 0
Не выводит существующие значения
    #39586881
katish444
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый Э - Эх,
пытаюсь получить таблицу как на скриншоте
Сейчас опишу подробно
...
Рейтинг: 0 / 0
Не выводит существующие значения
    #39586894
katish444
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
create table HOLECOORD (holeid varchar(255), projectcodevarchar(255), coordinatesetvarchar(255), x int,y int,z int)
create table HOLEDETAILS (holeid varchar(255), projectcode varchar(255), name varchar(255), value varchar(255))
create table DRILLHOLEDIAMDETAILS (holeid varchar(255), projectcode varchar(255), name varchar(255), value varchar(255))
create table HOLESURVEY (holeid varchar(255), projectcode varchar(255), depth int, azimuth decimal(20,5), dip decimal(20,5), azimuthGridName varchar(255))
create table DRILLINGDETAIL (drillingdate varchar(255), shift varchar(255), holeid varchar(255), projectcode varchar(255), name varchar(255), value varchar(255))

insert into HOLECOORD (holeid, projectcode, coordinateset, x,y,z) values ('UZSE-17-001', 'UZ', 'WGS84_Zone_43N_Plan', 100,200,300)
insert into HOLEDETAILS (holeid, projectcode, name, value) values ('UZSE-17-001', 'UZ', 'Drill_Date_Start', '26-oct-2017')
insert into HOLEDETAILS (holeid, projectcode, name, value) values ('UZSE-17-001', 'UZ', 'Depth_Project', '100')
insert into DRILLHOLEDIAMDETAILS (holeid, projectcode, name, value) values ('UZSE-17-001', 'UZ', 'DrillRigModel', 'LF90')
insert into HOLESURVEY (holeid, projectcode, depth, azimuth, dip, azimuthGridName) values ('UZSE-17-001', 'UZ',0,20,90,'AZ')
insert into HOLESURVEY (holeid, projectcode, depth, azimuth, dip, azimuthGridName) values ('UZSE-17-001', 'UZ',20,40,60,'AZ')
insert into DRILLINGDETAIL (drillingdate, shift, holeid, projectcode, name, value) values ('27-oct-2017','day','UZSE-17-001',
'UZ',DrillDepth','20')


Вот таблица на которой должен сработать мой скрипт
...
Рейтинг: 0 / 0
Не выводит существующие значения
    #39586898
katish444
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Блин, не могу эту тему удалить и случайно продублировала. Прошу прощения
...
Рейтинг: 0 / 0
Не выводит существующие значения
    #39586899
katish444Блин, не могу эту тему удалить и случайно продублировала. Прошу прощенияредактирование сообщений и их удаление - не предусмотрено движком форума. Тут реализована древняя народная мудрость - "что написано пером, то не вырубить топором" ;)
...
Рейтинг: 0 / 0
Не выводит существующие значения
    #39586912
katish444
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый Э - Эх,
пока писала, нашла ошибку и теперь все работает)))
Всем спасибо
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Не выводит существующие значения
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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