princeharish21 Ответов: 2

Как мне сгруппировать несколько запросов и как сделать SQL view


SELECT     store_reiss.mirno, store_reiss.mirenbyuser, store_reiss.mirdate, store_reiss.geno, store_reiss.genobyuser, store_reiss.gedate, store_reiss.supname, 
                      store_reissdetails.rate, store_reiss.chno, store_reiss.chdate, gatein_details.qtyinstpc, gatein_details.qtyinstpc * store_reissdetails.rate AS Expr1, 
                      gatein_details.qtyinstwt, gatein_details.qtyinstwt * store_reissdetails.rate AS Expr2, gatein_details.challanno, gatein_details.chdate AS Expr3, gatein_details.qty, 
                      gatein_details.chqtyinwt, gatein_details.qty * store_reissdetails.rate AS Expr4, gatein_details.chqtyinwt * store_reissdetails.rate AS Expr5, issue_reci_master.isno, 
                      issue_reci_master.isdate, issue_details.issqtypcs, issue_details.issqtywt, issue_details.issqtypcs * store_reissdetails.rate AS issamtpc, 
                      issue_details.issqtywt * store_reissdetails.rate AS issamtwt, gatein_details.qtyinstpc + gatein_details.qty - issue_details.issqtypcs AS Expr6, 
                      gatein_details.qtyinstwt + gatein_details.chqtyinwt - issue_details.issqtywt AS Expr7, (gatein_details.qtyinstpc + gatein_details.qty - issue_details.issqtypcs) 
                      * store_reissdetails.rate AS Expr8, (gatein_details.qtyinstwt + gatein_details.chqtyinwt - issue_details.issqtywt) * store_reissdetails.rate AS Expr9, 
                      item_master.item_desc, item_master.item_code, item_master.idesc, item_master.unit, item_master.maxlevelqty, item_master.minilevelqty, item_master.rackno, 
                      item_master.bincardno
INTO            Store1
FROM         issue_details INNER JOIN
                      issue_reci_master ON issue_details.isno = issue_reci_master.isno INNER JOIN
                      gatein_details INNER JOIN
                      gatein_master ON gatein_details.gateno = gatein_master.gateno INNER JOIN
                      store_reiss INNER JOIN
                      store_reissdetails ON store_reiss.mirno = store_reissdetails.mirno ON gatein_details.item_code = store_reissdetails.item_code ON 
                      issue_details.item_code = store_reissdetails.item_code INNER JOIN
                      item_master ON issue_details.item_code = item_master.item_code
WHERE     (store_reiss.mirdate BETWEEN '04/01/2019' AND '08/23/2019')
ORDER BY store_reiss.mirno


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

я получил желаемый результат из семи таблиц, но показываю все записи, и мне нужно сделать одну процедуру просмотра или хранения, чтобы сгенерировать отчет crystal в vb.net ,пожалуйста, помогите мне его срочно ...

Спасибо

#realJSOP

Что это за sql? Насколько я могу судить, это будет недопустимо в MS Sql...

MadMyche

Уродливый SQL

RmcbainTheThird

ms access sql

princeharish21

SQL Server

Richard Deeming

1) Нет, это не срочно. Ни для кого здесь. Все, чего вы добиваетесь, пытаясь повысить приоритетность вашего вопроса, - это сказать нам, что вы не можете управлять своим собственным временем.

2) в этом вопросе нет и близко достаточной информации, чтобы кто-то мог вам помочь. Вы не сказали нам, чего вы хотите достичь, что вы пробовали, или где вы застряли. Вы не показали нам структуру ваших таблиц или какие-либо примеры данных. Вы не показали нам, какой результат вы пытаетесь получить, или какой результат вы получаете в настоящее время.

3) что SQL-запрос нечитаем.

2 Ответов

Рейтинг:
1

W∴ Balboos, GHB

Вот справка о том, как сделать представление (если вы зайдете так далеко) - Для, как вы утверждаете, MS SQL:

      язык SQL СОЗДАТЬ ПРЕДСТАВЛЕНИЕ Замените точки зрения, падение зрения отчетности[^]


Maciej Los

Коротко И По Существу!

Рейтинг:
0

CHill60

@Balboos показал вам, как создать представление.

Одна из причин, по которой мы сомневаемся, что вы используете MS SQL, заключается в этом фрагменте кода (переформатированном, чтобы сделать его читабельным)

FROM issue_details
INNER JOIN issue_reci_master ON issue_details.isno = issue_reci_master.isno 
INNER JOIN gatein_details 
INNER JOIN gatein_master ON gatein_details.gateno = gatein_master.gateno 
INNER JOIN store_reiss 
INNER JOIN store_reissdetails ON store_reiss.mirno = store_reissdetails.mirno 
ON gatein_details.item_code = store_reissdetails.item_code 
ON issue_details.item_code = store_reissdetails.item_code
INNER JOIN item_master ON issue_details.item_code = item_master.item_code
Это своего рода конструкция, которую мы обычно видим в запросе MS Access - вместе с нагрузкой скобок. У вас тоже есть AS Expr8 что прямо из MS Access. Наконец, каждый столбец, который вы извлекаете, имеет квалификатор имени таблицы - еще одна особенность MS Access.

Держи свое ON клаузулы, тесно связанные с JOIN
FROM issue_details
INNER JOIN issue_reci_master ON issue_details.isno = issue_reci_master.isno 
INNER JOIN store_reiss
INNER JOIN store_reissdetails ON store_reiss.mirno = store_reissdetails.mirno 
      AND issue_details.item_code = store_reissdetails.item_code 
INNER JOIN item_master ON issue_details.item_code = item_master.item_code
INNER JOIN gatein_details ON gatein_details.item_code = store_reissdetails.item_code
INNER JOIN gatein_master ON gatein_details.gateno = gatein_master.gateno 
Вот тогда вы можете ясно видеть, что у вас нет ON предложение для присоединения к store_reiss - вполне вероятно, что это будет причиной вашей проблемы "но показывать все записи".

Узнайте о псевдонимах таблиц - это действительно хороший способ избежать необходимости вводить длинные имена таблиц и сделать код намного проще для чтения. Используйте также новые строки и пробелы - не только для того, чтобы выровнять вещи, но и для того, чтобы их было легче читать ... например, ваш может стать
SELECT SR.mirno, SR.mirenbyuser, SR.mirdate, SR.geno,
	SR.genobyuser, SR.gedate, SR.supname, 
	SRD.rate, SR.chno, SR.chdate, GD.qtyinstpc, 
	GD.qtyinstpc * SR.rate AS Expr1, 
	GD.qtyinstwt, 
	GD.qtyinstwt * SRD.rate AS Expr2, 
	GD.challanno, GD.chdate AS Expr3, 
	GD.qty, GD.chqtyinwt, 
	GD.qty * SRD.rate AS Expr4, 
	GD.chqtyinwt * SRD.rate AS Expr5, 
	IRM.isno, IRM.[isdate], ID.issqtypcs, ID.issqtywt, 
	ID.issqtypcs * SRD.rate AS issamtpc, 
	ID.issqtywt * SRD.rate AS issamtwt, 
	GD.qtyinstpc + GD.qty - ID.issqtypcs AS Expr6, 
	GD.qtyinstwt + GD.chqtyinwt - ID.issqtywt AS Expr7, 
	(GD.qtyinstpc + GD.qty - ID.issqtypcs) * SR.rate AS Expr8, 
	(GD.qtyinstwt + GD.chqtyinwt - ID.issqtywt) * SRD.rate AS Expr9, 
	IM.item_desc, IM.item_code, IM.idesc, IM.unit, IM.maxlevelqty, 
	IM.minilevelqty, IM.rackno, IM.bincardno
INTO	Store1
FROM       issue_details ID
INNER JOIN issue_reci_master IRM ON ID.isno = IRM.isno 
INNER JOIN store_reiss SR -- Fix this ON clause
INNER JOIN store_reissdetails SRD ON SR.mirno = SRD.mirno 
		AND ID.item_code = SRD.item_code 
INNER JOIN item_master IM ON IM.item_code = ID.item_code
INNER JOIN gatein_details GD ON GD.item_code = SRD.item_code
INNER JOIN gatein_master GM ON GD.gateno = GM.gateno 
WHERE     SR.mirdate BETWEEN '04/01/2019' AND '08/23/2019'
ORDER BY SR.mirno


Maciej Los

Хорошо объяснил!