Size: a a a

SqlCom.ru - Стиль жизни SQL

2020 October 17

S

SergeyK in SqlCom.ru - Стиль жизни SQL
Все привет.
источник

S

SergeyK in SqlCom.ru - Стиль жизни SQL
Нужна помощь в том что бы дать направление в решении задачи
источник

S

SergeyK in SqlCom.ru - Стиль жизни SQL
Вот такие данные declare @User table(
Id int,
LName nvarchar(200),
FName nvarchar(200),
Tel nvarchar(15) null
);

declare @Plan table(
Id int,
UserId int,
ShopId int,
DT date,
[PlanMin] int
);

declare @Fact table(
Id int identity(1,1),
PlanId int,
FactFrom int,
FactTo int
);


insert into @User(Id, LName, FName, Tel)
values (1, 'Иванов', 'Иван', '+7(123)1231212'), (2, 'Иванов', 'Вася', null);



insert into @Plan(Id, UserId, ShopId, DT, [PlanMin])
values (1, 1, 1, '01.04.2016', 60),
(2, 1, 1, '02.04.2016', 70),
(3, 1, 1, '03.04.2016', 60),
(4, 1, 2, '01.04.2016', 30),
(5, 1, 2, '02.04.2016', 180),
(6, 1, 3, '01.04.2016', 120),
(7, 1, 4, '01.04.2016', 60),
(8, 1, 4, '02.04.2016', 90),
(9, 1, 5, '01.04.2016', 60),

(10, 2, 6, '01.04.2016', 55),
(11, 2, 6, '02.04.2016', 33),
(12, 2, 6, '03.04.2016', 60),
(13, 2, 7, '01.04.2016', 22),
(14, 2, 7, '02.04.2016', 123),
(15, 2, 8, '01.04.2016', 120),
(16, 2, 9, '01.04.2016', 70),
(17, 2, 10, '02.04.2016', 90),
(18, 2, 11, '01.04.2016', 65);


insert into @Fact(PlanId, FactFrom, FactTo)
values (1, 0, 23),
(2, 500, 600),
(3, 33, 44),
(4, 666, 785),
(6, 1300, 1500),
(7, 401, 480),
(8, 720, 875),
(10, 234, 432),
(11, 1, 11),
(12, 11, 111),
(13, 22, 222),
(15, 33, 333),
(16, 44, 444);
источник

S

SergeyK in SqlCom.ru - Стиль жизни SQL
А получить нужно Empl  01.04.2016  02.04.2016  03.04.2016
Вася Иванов  5:32 / 18:18  4:06 / 0:10  1:00 / 1:40
Иван Иванов  5:30 / 7:01  5:40 / 4:15  1:00 / 0:11
источник

2_

2flower _ in SqlCom.ru - Стиль жизни SQL
источник

S

SergeyK in SqlCom.ru - Стиль жизни SQL
Думал использовать Pivot, но не получается. И значение в Plan и Fact это количество минут
источник

2_

2flower _ in SqlCom.ru - Стиль жизни SQL
SergeyK
Думал использовать Pivot, но не получается. И значение в Plan и Fact это количество минут
что значит не получается? буквы на клавиатуре не работают?
может покажете, что получилось
источник

S

SergeyK in SqlCom.ru - Стиль жизни SQL
SELECT Empl,[01.04.2016],[02.04.2016],[03.04.2016]
FROM (
   SELECT u.FName+' '+u.LName AS Empl,CONVERT(nvarchar(10),dt ,104) as Dt,p.PlanMin AS PlanMin--,(f.FactTo-f.FactFrom) AS FactFrom
   FROM @user u INNER JOIN @Plan p ON
       u.id=p.UserId          
         inner JOIN @Fact f ON
          p.Id=f.PlanId
   ) empT
PIVOT  
(  
sum(PlanMin)
FOR dt IN ([01.04.2016],[02.04.2016],[03.04.2016])  
) AS p;
источник

S

SergeyK in SqlCom.ru - Стиль жизни SQL
только это для Plan а в ячейке  должно быть еще и FactTo-FactFrom
источник

S

SergeyK in SqlCom.ru - Стиль жизни SQL
при этом сумму минут нужно перевести в вид hh:mm
источник

VB

Vitaliy Bajenov in SqlCom.ru - Стиль жизни SQL
Petr
попробуй селект сделать к all_objects, в мое случае было проще потому-что я сразу косяк увидел когда создал пакет
ничего такого, чтобы в названии было что то не то, самое интересное, чтобы список таблиц открывается, только процедуры не хотят
источник

R

Randomnickname in SqlCom.ru - Стиль жизни SQL
SergeyK
при этом сумму минут нужно перевести в вид hh:mm
о, сам недавно что-то похожее делал, не читал выше какой у тебя случай но думаю, подойдет
источник

R

Randomnickname in SqlCom.ru - Стиль жизни SQL
   cast(datediff(hour,tasks.created,tasks.completed) as nvarchar) -- здесь получаем сумму часов
+ RIGHT(LEFT(convert(nvarchar, tasks.completed - tasks.created,108),8),6) -- клеим эту сумму к сумме минут и секунд (думаю, как убрать секунды разберешься)

В итоге будет вид HH:MM:SS
источник

S

SergeyK in SqlCom.ru - Стиль жизни SQL
Randomnickname
   cast(datediff(hour,tasks.created,tasks.completed) as nvarchar) -- здесь получаем сумму часов
+ RIGHT(LEFT(convert(nvarchar, tasks.completed - tasks.created,108),8),6) -- клеим эту сумму к сумме минут и секунд (думаю, как убрать секунды разберешься)

В итоге будет вид HH:MM:SS
Спасибо. Это не проблема. Проблема в том что два разных значения поместить в одну ячейку
источник

R

Randomnickname in SqlCom.ru - Стиль жизни SQL
Ну, вот тебе направление, тоже голову ломал)
источник

S

SergeyK in SqlCom.ru - Стиль жизни SQL
Randomnickname
Ну, вот тебе направление, тоже голову ломал)
Спасибо
источник

АА

Андрей Агеев... in SqlCom.ru - Стиль жизни SQL
SergeyK
Спасибо. Это не проблема. Проблема в том что два разных значения поместить в одну ячейку
как текст - concat() например
источник

Р

Рустам in SqlCom.ru - Стиль жизни SQL
Здравствуйте!
Подскажите где можно скачать базу данных для ms sql server для тренировок!
источник

ДЗ

Дмитрий Зайцев... in SqlCom.ru - Стиль жизни SQL
источник

Р

Рустам in SqlCom.ru - Стиль жизни SQL
Сенкью вери мач!
источник