Jayanta Modak Ответов: 1

Автоматическое дублирование строк в SQL server 2008 r2 select query


автоматическое дублирование строк в sql server 2008 r2 select query
у меня есть два имени таблицы 1) tbl_Stock_Journal 2) tbl_Stock_Journal_Details

я запускаю запрос select с условием where
у меня есть 5 данных в таблице 1 и в таблице 2 есть 3 данных когда я запускаю результат запроса показывает 15 строк запрос показывает по дате мудро
я хочу показать максимум данных, и если в другой таблице в ту же дату нет количества данных, то покажите пустой или нулевой

пожалуйста, помогите мне.....

Что я уже пробовал:

ALter proc P_GetStockJournalRPT --  'all', 'all','2018-07-10' , '2018-07-10'     

   
@SJItmID varchar (100)      ,          
@SJDItmID varchar (100)      , 
@Sdate date,                                  
@EDate Date  
   
As
if @SJItmID='ALL' and @SJDItmID='ALL'
begin
select distinct SJ.SJID, i1.itemnm as itemnmsou, SJ.SJqty, SJ.SJPCS, SJ.SJRate, SJ.SJamt, SJ.SJleft, SJ.SJDate, SJ.nrr,
i2.itemnm as itemnmDES, SJD.SJDqty, SJD.SJDPCS, SJD.SJDRate, SJD.SJDamt, SJD.SJDstock, SJD.SJDdate

from tbl_Stock_Journal SJ

INNER JOIN tbl_item AS i1   ON i1.itemid  =SJ.SJItmID
 inner JOIN tbl_Stock_Journal_Details AS SJD   ON   SJ.SJID = SJD.SJID                             
inner JOIN tbl_item AS i2   ON i2.itemid  =SJd.SJdItmID

where CAST(sj.SJDate AS DATE) BETWEEN @Sdate AND @EDate         
--where CAST(sj.SJDate AS DATE) BETWEEN '2018-07-10' AND '2018-07-10'        
end

Wendelius

Не могли бы вы опубликовать некоторые примеры данных и пример желаемого результата?

Jayanta Modak

Я был очень болен. Поэтому я не мог ответить. Пожалуйста, прости меня ...
https://ibb.co/jfoJM8
https://ibb.co/fgOk18

Naga Sindhura

попробуйте изменить в части следующим образом:

из tbl_Stock_Journal SJ
Внутреннее соединение tbl_item как I1 на и1.идентификатор Itemid =СД.SJItmID
внутреннее соединение tbl_Stock_Journal_Details как sjd на СД.СОКРАЩЕННО ЮЖИЗ = ДОКТОР ЮРИДИЧЕСКИХ НАУК.Сокращенно южиз и доктор юридических наук.SJdItmID = и1.идентификатор элемента

Если это действительно работает, попробуйте опубликовать некоторые примеры данных.

Jayanta Modak

Я был очень болен. Поэтому я не мог ответить. Пожалуйста, прости меня ...
https://ibb.co/jfoJM8
https://ibb.co/fgOk18

Jayanta Modak

Сэр, он не показывает никакой ошибки, но показывает только одно и то же совпадение элементов двух таблиц

1 Ответов

Рейтинг:
0

CHill60

Я думаю, что то, что вы описываете, было бы результатом, если бы вы использовали a LEFT OUTER JOIN вместо того, чтобы INNER JOINs, что у вас в настоящее время есть.

Взгляните на эти статьи CodeProject, чтобы объяснить дальше
Визуальное представление SQL-соединений[^]
Типы соединений в SQL Server[^]

Не так уж много изменений нужно сделать...

select distinct SJ.SJID, i1.itemnm as itemnmsou, SJ.SJqty, SJ.SJPCS, SJ.SJRate, SJ.SJamt, SJ.SJleft, SJ.SJDate, SJ.nrr,
i2.itemnm as itemnmDES, SJD.SJDqty, SJD.SJDPCS, SJD.SJDRate, SJD.SJDamt, SJD.SJDstock, SJD.SJDdate

from tbl_Stock_Journal SJ

LEFT OUTER JOIN tbl_item AS i1   ON i1.itemid  =SJ.SJItmID
LEFT OUTER JOIN tbl_Stock_Journal_Details AS SJD   ON   SJ.SJID = SJD.SJID                             
LEFT OUTER JOIN tbl_item AS i2   ON i2.itemid  =SJd.SJdItmID

where CAST(sj.SJDate AS DATE) BETWEEN @Sdate AND @EDate         


Jayanta Modak

спасибо, сэр, за ответ. Я пробую ваше решение, но результат тот же
пожалуйста, помогите мне

CHill60

Чтобы помочь вам в дальнейшем нам нужно будет увидеть некоторые примеры данных из каждой из ваших таблиц и то, что вы ожидаете увидеть

Jayanta Modak

Я был очень болен. Поэтому я не мог ответить. Пожалуйста, прости меня ...
https://ibb.co/jfoJM8
https://ibb.co/fgOk18