Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2 3   вперед  Ctrl      все
 Представление таблицы в виде строки  [new]
Максим Александровитч
Member

Откуда:
Сообщений: 532
Добрый день, господа. Не могу сам справиться, ибо неопытен вовсе
Написал запрос, который показывается перемещение товара ИЗ какой ячейку А какую ячейку. Так же кол-вл,операция,признак перемещения из ячейки.

Запрос
select top (1000) a.log_DateTime as [Время],c.msg_Greek as [Операция],e.loc_Code [Ячейка],f.prd_PrimaryCode [товар],d.lsk_OriginalLED [признак],t.lsp_Quantity [Кол-во]
from LV_Log a
join LV_TransactionType b on b.trt_ID = a.log_TransactionTypeID
join LV_Messages c on c.msg_code = b.trt_MessageCode
join LV_LogStock d on d.lsk_LogID = a.log_ID
join LV_Location e on e.loc_ID = d.lsk_LocationID
join LV_Product f on f.prd_ID = d.lsk_ProductID
join LV_LogStockPackType t on t.lsp_LogStockID = d.lsk_ID


where c.msg_ID = 4683 and a.log_DateTime > '2015-09-18 8:26:29' and a.log_DateTime < '2015-09-18 8:26:51' and t.lsp_CUQuantity is not null
order by a.log_DateTime desc

Поле d.lsk_OriginalLED дает 2 значения 1- признак передачи ИЗ
0-признак передачи В


Время Операция Ячейка товар признак Кол-во
18.09.2015 8:26 Размещение IN_M22 219997 1 -20.000000
18.09.2015 8:26 Размещение IN_M22 219997 1 5.000000
18.09.2015 8:26 Размещение 30-70-01 219997 0 -38.000000
18.09.2015 8:26 Размещение 30-70-01 219997 0 53.000000

Нужно представить эту таблицу в таком виде


Время Операция Из ячейки В ячейку Товар Кол-во
18.09.2015 8:26 Размещение IN_M22 30-70-01 219997 -20.000000
18 сен 15, 11:42    [18164660]     Ответить | Цитировать Сообщить модератору
 Re: Представление таблицы в виде строки  [new]
Akina
Member

Откуда: Зеленоград, Москва, Россия
Сообщений: 21242
Из ячейки IN_M22 перемещено минус 20 - это вообще как? Формат хранения не допускает мысли, что это было перемещение в эту ячейку 20 единиц - иначе был бы признак 0 и количество +20... но тогда что это было?
18 сен 15, 11:48    [18164690]     Ответить | Цитировать Сообщить модератору
 Re: Представление таблицы в виде строки  [new]
Максим Александровитч
Member

Откуда:
Сообщений: 532
Забыл упомянуть об особенности строения БД- любая операция минусуется.
-20 говорит о том, что изначально в этой ячейке было 20 упаково,после показывает 5. Т.е. 15 упаково отобрали
Далее -38 было упаковок,53 - добавили 15 упаковок в ячейку 30-70-01
18 сен 15, 12:11    [18164815]     Ответить | Цитировать Сообщить модератору
 Re: Представление таблицы в виде строки  [new]
Akina
Member

Откуда: Зеленоград, Москва, Россия
Сообщений: 21242
Максим Александровитч
-20 говорит о том, что изначально в этой ячейке было 20 упаково,после показывает 5. Т.е. 15 упаково отобрали

Не понимаю. Первая запись показывает -20, вторая +5. Три раза пересчитывал - изменение составляет 25, а не 15...

Максим Александровитч
Далее -38 было упаковок,53 - добавили 15 упаковок в ячейку 30-70-01

Тоже непонятно...

Объясняйте вменяемо, когда плюс, а когда минус. А ещё лучше - объясняйте всё сразу с нуля, как будто раньше никаких объяснений не было вообще, и абсолютно полно.
18 сен 15, 12:25    [18164885]     Ответить | Цитировать Сообщить модератору
 Re: Представление таблицы в виде строки  [new]
Максим Александровитч
Member

Откуда:
Сообщений: 532
Смотрите:
Ячейка IN_M22 в ней показвает -20
2-я операция ячейка IN_M22 показывает 5

То есть отобрали 15 упаковок, осталось 5

3-я строка Ячейка 30-70-01 показывает -38,т.е. в этой ячейке было с самого начала 38 упаково
4-я строка Ячейка 30-70-01 показывается 53,т.е. прибавили 15 отобранных ранее упаковок из ячейки IN_M22


НУ если плохо объясняю, то можно исходить из этого
Время Операция Ячейка товар признак Кол-во

18.09.2015 8:26 Размещение IN_M22 219997 1 5.000000
18.09.2015 8:26 Размещение 30-70-01 219997 0 53.000000

То есть в ячейка IN_M22 взяли 5 шутк и положили в ячейку 30-70-01
В ячейке 30-70-01 53 штуки
Я хочу понять, как отобразить процесс ИЗ --->В
18 сен 15, 12:30    [18164921]     Ответить | Цитировать Сообщить модератору
 Re: Представление таблицы в виде строки  [new]
Glory
Member

Откуда:
Сообщений: 104751
Максим Александровитч
2-я операция ячейка IN_M22 показывает 5

Что-то я не вижу столбца с нумерацией операций
18 сен 15, 12:31    [18164935]     Ответить | Цитировать Сообщить модератору
 Re: Представление таблицы в виде строки  [new]
Максим Александровитч
Member

Откуда:
Сообщений: 532
Glory
Максим Александровитч
2-я операция ячейка IN_M22 показывает 5

Что-то я не вижу столбца с нумерацией операций


ВЫ про это?

Время Операция Ячейка товар признак Кол-во


18.09.2015 8:26 Размещение IN_M22 219997 1 5.000000
18.09.2015 8:26 Размещение 30-70-01 219997 0 53.000000
18 сен 15, 12:42    [18165046]     Ответить | Цитировать Сообщить модератору
 Re: Представление таблицы в виде строки  [new]
Glory
Member

Откуда:
Сообщений: 104751
Максим Александровитч
ВЫ про это?

Время Операция Ячейка товар признак Кол-во


18.09.2015 8:26 Размещение IN_M22 219997 1 5.000000
18.09.2015 8:26 Размещение 30-70-01 219997 0 53.000000

Да, где здесь 1-я операция ? Где 2-я операция ?
18 сен 15, 12:43    [18165065]     Ответить | Цитировать Сообщить модератору
 Re: Представление таблицы в виде строки  [new]
Akina
Member

Откуда: Зеленоград, Москва, Россия
Сообщений: 21242
Максим Александровитч
Смотрите:
Ячейка IN_M22 в ней показвает -20
2-я операция ячейка IN_M22 показывает 5

То есть отобрали 15 упаковок, осталось 5

Я правильно понимаю, что все значения положительные, а минус - это просто некий признак, под который ваш грёбаный архитектор поленился отвести ещё одно поле (такое же, как поле "признак")?
18 сен 15, 12:47    [18165103]     Ответить | Цитировать Сообщить модератору
 Re: Представление таблицы в виде строки  [new]
Максим Александровитч
Member

Откуда:
Сообщений: 532
Akina
Максим Александровитч
Смотрите:
Ячейка IN_M22 в ней показвает -20
2-я операция ячейка IN_M22 показывает 5

То есть отобрали 15 упаковок, осталось 5

Я правильно понимаю, что все значения положительные, а минус - это просто некий признак, под который ваш грёбаный архитектор поленился отвести ещё одно поле (такое же, как поле "признак")?


Да и это не наш,а греческий архитектор.В итоге, если смотрим операции,например отбора из ячейки,то он,вначале показывает наличие товара,НО с минусом.
И если идет перемещение товара,то,в итоге,конечный результат это цифра с плюсом
18 сен 15, 13:32    [18165486]     Ответить | Цитировать Сообщить модератору
 Re: Представление таблицы в виде строки  [new]
Максим Александровитч
Member

Откуда:
Сообщений: 532
Подумал,что можно использовать встроенный запрос. Создал его,в нем указал выборку признака передачи ИЗ В, поставил услоиве,которое фильтрует только по В(т.е.0) . Получилось 2 таблицы.


Время Операция Ячейка товар признак Кол-во
18.09.2015 8:26 Размещение IN_M22 219997 1 -20.000000
18.09.2015 8:26 Размещение IN_M22 219997 1 5.000000
18.09.2015 8:26 Размещение 30-70-01 219997 0 -38.000000
18.09.2015 8:26 Размещение 30-70-01 219997 0 53.000000


В
0
0
0
0
0

Запрос

select top (1000) a.log_DateTime as [Время],c.msg_Greek as [Операция],e.loc_Code [Ячейка],f.prd_PrimaryCode [товар],d.lsk_OriginalLED [признак],t.lsp_Quantity [Кол-во],d.lsk_OriginalLED [ИЗ],d.lsk_OriginalLED [В]
from LV_Log a
join LV_TransactionType b on b.trt_ID = a.log_TransactionTypeID
join LV_Messages c on c.msg_code = b.trt_MessageCode
join LV_LogStock d on d.lsk_LogID = a.log_ID
join LV_Location e on e.loc_ID = d.lsk_LocationID
join LV_Product f on f.prd_ID = d.lsk_ProductID
join LV_LogStockPackType t on t.lsp_LogStockID = d.lsk_ID


where c.msg_ID = 4683 and a.log_DateTime > '2015-09-18 8:26:29' and a.log_DateTime < '2015-09-18 8:26:51' and t.lsp_CUQuantity is not null and(d.lsk_OriginalLED=1 or d.lsk_OriginalLED=0)
([i]select t1.lsk_OriginalLED as [В]
from LV_LogStock t1
where t1.lsk_OriginalLED = 0
[/i] )

Вопрос,как мне вытащить поле t1.lsk_OriginalLED в 1-ю таблицу?
18 сен 15, 14:08    [18165687]     Ответить | Цитировать Сообщить модератору
 Re: Представление таблицы в виде строки  [new]
Максим Александровитч
Member

Откуда:
Сообщений: 532
Господа,как хотя бы слить эти таблицы..
18 сен 15, 14:24    [18165776]     Ответить | Цитировать Сообщить модератору
 Re: Представление таблицы в виде строки  [new]
icprog
Member

Откуда:
Сообщений: 166
Максим Александровитч,

Также как и любые другие - JOIN
18 сен 15, 14:27    [18165803]     Ответить | Цитировать Сообщить модератору
 Re: Представление таблицы в виде строки  [new]
Akina
Member

Откуда: Зеленоград, Москва, Россия
Сообщений: 21242
Итогово получается, что любая операция перемещения является совокупностью из 4 записей. Это верно?
Тогда вопрос - как полно и однозначно идентифицируется группа? Исходный пример намекает, что это можно сделать по совокупности равных штампа времени и кода продукта, но такой подход не исключает наложения двух операций, записи для которых на таком критерии неразличимы.
18 сен 15, 14:38    [18165928]     Ответить | Цитировать Сообщить модератору
 Re: Представление таблицы в виде строки  [new]
Максим Александровитч
Member

Откуда:
Сообщений: 532
icprog
Максим Александровитч,

Также как и любые другие - JOIN

Я написал джоин,но при отображении встроенного параметра скуль его не распознает
18 сен 15, 14:42    [18165967]     Ответить | Цитировать Сообщить модератору
 Re: Представление таблицы в виде строки  [new]
Максим Александровитч
Member

Откуда:
Сообщений: 532
Akina
Итогово получается, что любая операция перемещения является совокупностью из 4 записей. Это верно?
Тогда вопрос - как полно и однозначно идентифицируется группа? Исходный пример намекает, что это можно сделать по совокупности равных штампа времени и кода продукта, но такой подход не исключает наложения двух операций, записи для которых на таком критерии неразличимы.


Чертовски хороший вопрос. Каждое обращение к ПО это 2 операции. Т.е. нужно посмотреть количество товара А на складе.
Идем в ПО,жмем справочники,вводим фильтр по товару А. Выдает
Товар А
Кол-во -36
Кол-во 36

Если,например,его перемещают в ячейку,то видно
Товар Ячейка Количество Доступное кол-во
А С -36 -36
А Ы 10 26

Итого ПО показывает сначала доступное кол-во с минусом, потом доступное кол-во с плюсом. Итог-отобрали 10 штук
18 сен 15, 14:45    [18165990]     Ответить | Цитировать Сообщить модератору
 Re: Представление таблицы в виде строки  [new]
Максим Александровитч
Member

Откуда:
Сообщений: 532
Система дрянь. Собираемся менять,но данные нужны..
18 сен 15, 14:56    [18166059]     Ответить | Цитировать Сообщить модератору
 Re: Представление таблицы в виде строки  [new]
Максим Александровитч
Member

Откуда:
Сообщений: 532
Господа?
18 сен 15, 16:31    [18166723]     Ответить | Цитировать Сообщить модератору
 Re: Представление таблицы в виде строки  [new]
Akina
Member

Откуда: Зеленоград, Москва, Россия
Сообщений: 21242
Если схематично, то получается приблизительно так: http://sqlfiddle.com/#!3/0a50b6/1
18 сен 15, 17:31    [18167194]     Ответить | Цитировать Сообщить модератору
 Re: Представление таблицы в виде строки  [new]
Максим Александровитч
Member

Откуда:
Сообщений: 532
Akina
Если схематично, то получается приблизительно так: http://sqlfiddle.com/#!3/0a50b6/1


Блин,неплохо,но как-то сложновато пока для меня. Хотелось четко понимать для чего нужен встроенный джоин.Для того,чтобы приравнивать его к значению флага 1 или 0?
21 сен 15, 08:10    [18173485]     Ответить | Цитировать Сообщить модератору
 Re: Представление таблицы в виде строки  [new]
Максим Александровитч
Member

Откуда:
Сообщений: 532
ну да встроенные джоины для разных занчений флага. Я писал подобное,но у меня почему-то выводятся 2 таблицы,вместо 1-й
21 сен 15, 08:12    [18173488]     Ответить | Цитировать Сообщить модератору
 Re: Представление таблицы в виде строки  [new]
Akina
Member

Откуда: Зеленоград, Москва, Россия
Сообщений: 21242
Максим Александровитч
Хотелось четко понимать для чего нужен встроенный джоин
В моём запросе и слова-то такого нет. Декартово произведение и отбор.

Максим Александровитч
у меня почему-то выводятся 2 таблицы

Сколько просишь, столько и выводится.
21 сен 15, 08:57    [18173546]     Ответить | Цитировать Сообщить модератору
 Re: Представление таблицы в виде строки  [new]
Максим Александровитч
Member

Откуда:
Сообщений: 532
Вот мой запрос:
select top (1000) a.log_DateTime as [Время],c.msg_Greek as [Операция],e.loc_Code [Ячейка],f.prd_PrimaryCode [товар],d.lsk_OriginalLED [признак],sum(cast(t.lsp_Quantity as float(6))) as [Кол-во],d.lsk_OriginalLED [ИЗ],d.lsk_OriginalLED [В]
from LV_Log a
join LV_TransactionType b on b.trt_ID = a.log_TransactionTypeID
join LV_Messages c on c.msg_code = b.trt_MessageCode
join LV_LogStock d on d.lsk_LogID = a.log_ID
join LV_Location e on e.loc_ID = d.lsk_LocationID
join LV_Product f on f.prd_ID = d.lsk_ProductID
join LV_LogStockPackType t on t.lsp_LogStockID = d.lsk_ID


where c.msg_ID = 4683 and a.log_DateTime > '2015-09-18 8:26:29' and a.log_DateTime < '2015-09-18 8:26:51' and t.lsp_CUQuantity is not null and (d.lsk_OriginalLED=1 or d.lsk_OriginalLED=0)

group by a.log_DateTime,c.msg_Greek,e.loc_Code,f.prd_PrimaryCode,d.lsk_OriginalLED
order by d.lsk_OriginalLED desc


Выдает
Время Операция Ячейка товар признак Кол-во ИЗ В
2015-09-18 08:26:40.803 Размещение IN_M22 219997 1 -15 1 1
2015-09-18 08:26:40.803 Размещение 30-70-01 219997 0 15 0 0

Не пойму,Как поместтить в ИЗ В поле ячейка и как корректно составтиь встроенный запрос
21 сен 15, 09:13    [18173586]     Ответить | Цитировать Сообщить модератору
 Re: Представление таблицы в виде строки  [new]
zero_air
Member

Откуда:
Сообщений: 53
Если честно не пойму что вы не поймете..

Не пойму,Как поместтить в ИЗ В поле ячейка и как корректно составтиь встроенный запрос

Но Откровенно говоря все не так.
1. Зачем вы работаете с логом по msg_id если есть log_TransactionTypeID
2. Что вам мешает использовать таблицу LV_LogStock два раза ?

В общем если я правильно понял вам нужен результат
Когда - Кто - сколько - откуда - куда

SELECT convert(varchar(10), log1.log_DateTime, 104) AS Date,
       CASE 
            WHEN lsc1.Lsc_SSCC is not null THEN lsc1.Lsc_SSCC
            ELSE '-'
       END AS SSCC,
       per1.per_LastName AS Person,
       sum(convert(int, spt1.lsp_Quantity)) AS Qty,
       ll1.loc_Code AS FromLocation,
       ll2.loc_Code AS ToLocation
FROM   lv_log log1 with (nolock)
       left JOIN LV_LogStock lsk1 with (nolock)
            ON  lsk1.lsk_LogID = log1.log_ID
            AND lsk1.lsk_OriginalLED = 1
       left JOIN LV_LogStock lsk2 with (nolock)
            ON  lsk2.lsk_LogID = log1.log_ID
            AND lsk2.lsk_OriginalLED = 0
       left JOIN LV_LogStockPackType spt1 with (nolock)
            ON  spt1.lsp_LogStockID = lsk1.lsk_ID
            AND spt1.lsp_ParentID is null
       left JOIN LV_LogStockContainer lsc1 with (nolock)
            ON  lsc1.Lsc_ID = lsk1.lsk_FromContainerID
       left JOIN LV_Location ll1 with (nolock)
            ON  ll1.loc_ID = lsk1.lsk_LocationID
       left JOIN LV_Location ll2 with (nolock)
            ON  ll2.loc_ID = lsk2.lsk_LocationID
       left JOIN LV_Session ses1 with (nolock)
            ON  ses1.ses_ID = log1.log_SessionID
       left JOIN lv_host hst1 with (nolock)
            ON  hst1.Hst_ID = ses1.ses_HostID
       left JOIN LV_Users usr1 with (nolock)
            ON  usr1.usr_ID = log1.log_UserID
       left JOIN COM_Person per1 with (nolock)
            ON  per1.per_ID = usr1.usr_PersonID
WHERE  log1.log_TransactionTypeID = 2
       AND log1.log_DateTime >= '2015-09-17 00:00:00'
       AND log1.log_DateTime <= '2015-09-17 23:59:59'
GROUP BY
       per1.per_LastName,
       lsc1.Lsc_SSCC,
       convert(varchar(10), log1.log_DateTime, 104),
       ll1.loc_Code,
       ll2.loc_Code
ORDER BY
       convert(varchar(10), log1.log_DateTime, 104) desc
21 сен 15, 11:53    [18174400]     Ответить | Цитировать Сообщить модератору
 Re: Представление таблицы в виде строки  [new]
Jaffar
Member

Откуда:
Сообщений: 633
всегда напрягало когда автор топика доходчиво не может сказать что ему нужно.
Все типа должны догадываться по кусочку говна, небрежно брошенному автором, кто же его насрал, предварительно изучив его и вкус и консистенцию своими вкусовыми рецепторам .....

Но это так к слову.
21 сен 15, 12:27    [18174598]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2 3   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить