 |
| SQL Server 2005 General discussion of SQL Server *2005* version only. |
Welcome to the p2p.wrox.com Forums.
You are currently viewing the SQL Server 2005 section of the Wrox Programmer to Programmer discussions. This is a community of software programmers and website developers including Wrox book authors and readers. New member registration was closed in 2019. New posts were shut off and the site was archived into this static format as of October 1, 2020. If you require technical support for a Wrox book please contact http://hub.wiley.com
|
|
|
|

April 1st, 2008, 10:54 AM
|
|
Authorized User
|
|
Join Date: Jun 2003
Posts: 15
Thanks: 0
Thanked 0 Times in 0 Posts
|
|
I am not sure what client tool/application you are using. If you are using SSMS, click on options and goto connection properties. Change the value of Execution timeout.
However this option may give undesired results as a poorly written query may wait for ever and block all other connections from accessing your resources. Use it with care.
G.R.Preethiviraj Kulasingham
|
|

April 2nd, 2008, 11:26 PM
|
|
Authorized User
|
|
Join Date: Apr 2007
Posts: 23
Thanks: 0
Thanked 0 Times in 0 Posts
|
|
Here is the code for my View ..
CREATE VIEW dbo.abc
AS
SELECT a.INVOICE_DETAIL_ID, b.INVOICE_HEADER_ID, a.LINE_ITEM_CODE, c.LINE_ITEM_DESCRIPTION, d.GROUP_TITLE, a.QUANTITY, a.RATE,
(SELECT DATE_OCCURRED
FROM dbo.INVOICE_DETAIL_DATES
WHERE (INVOICE_DETAIL_ID = a.INVOICE_DETAIL_ID) AND (LINE_ITEM_CODE = a.LINE_ITEM_CODE) AND (LINE_ITEM_DATE_ID = 1))
AS date_ordered,
(SELECT DATE_OCCURRED
FROM dbo.INVOICE_DETAIL_DATES AS INVOICE_DETAIL_DATES_5
WHERE (INVOICE_DETAIL_ID = a.INVOICE_DETAIL_ID) AND (LINE_ITEM_CODE = a.LINE_ITEM_CODE) AND (LINE_ITEM_DATE_ID = 2))
AS date_completed,
(SELECT DATE_OCCURRED
FROM dbo.INVOICE_DETAIL_DATES AS INVOICE_DETAIL_DATES_4
WHERE (INVOICE_DETAIL_ID = a.INVOICE_DETAIL_ID) AND (LINE_ITEM_CODE = a.LINE_ITEM_CODE) AND (LINE_ITEM_DATE_ID = 3))
AS date_cancelled,
(SELECT DATE_OCCURRED
FROM dbo.INVOICE_DETAIL_DATES AS INVOICE_DETAIL_DATES_3
WHERE (INVOICE_DETAIL_ID = a.INVOICE_DETAIL_ID) AND (LINE_ITEM_CODE = a.LINE_ITEM_CODE) AND (LINE_ITEM_DATE_ID = 4))
AS date_service_begin,
(SELECT DATE_OCCURRED
FROM dbo.INVOICE_DETAIL_DATES AS INVOICE_DETAIL_DATES_2
WHERE (INVOICE_DETAIL_ID = a.INVOICE_DETAIL_ID) AND (LINE_ITEM_CODE = a.LINE_ITEM_CODE) AND (LINE_ITEM_DATE_ID = 5))
AS date_service_end,
(SELECT DATE_OCCURRED
FROM dbo.INVOICE_DETAIL_DATES AS INVOICE_DETAIL_DATES_1
WHERE (INVOICE_DETAIL_ID = a.INVOICE_DETAIL_ID) AND (LINE_ITEM_CODE = a.LINE_ITEM_CODE) AND (LINE_ITEM_DATE_ID = 6))
AS date_open_date, h.NOTES, a.QUANTITY * a.RATE AS TotalBeforeAdjustments, f.DISPLAY_NAME AS created_by, a.CREATED,
g.ADJUST_AMOUNT_BY, g.REASON_FOR_ADJUSTMENT, a.QUANTITY * a.RATE + ISNULL(g.ADJUST_AMOUNT_BY, 0) AS GrandTotal, g.ADJUSTED,
i.DISPLAY_NAME AS adjusted_by, k.ADJUSTMENT_REASON
FROM dbo.INVOICE_DETAIL AS a WITH (nolock) INNER JOIN
dbo.INVOICE_HEADER AS b WITH (nolock) ON a.INVOICE_HEADER_ID = b.INVOICE_HEADER_ID INNER JOIN
dbo.LINE_ITEMS AS c WITH (nolock) ON a.LINE_ITEM_CODE = c.LINE_ITEM_CODE INNER JOIN
dbo.LINE_ITEM_GROUPS AS d WITH (nolock) ON a.GROUP_ID = d.GROUP_ID INNER JOIN
dbo.INVOICE_DETAIL_DATES AS e WITH (nolock) ON a.INVOICE_DETAIL_ID = e.INVOICE_DETAIL_ID INNER JOIN
ICLEAR_CENTRALDB.dbo.USER_CONTACT_INFO AS f WITH (nolock) ON a.CREATED_BY = f.CONTACT_INFO_ID LEFT OUTER JOIN
dbo.INVOICE_ADJUSTMENTS AS g WITH (nolock) ON a.INVOICE_DETAIL_ID = g.INVOICE_DETAIL_ID LEFT OUTER JOIN
dbo.INVOICE_NOTES AS h WITH (nolock) ON a.INVOICE_DETAIL_ID = h.INVOICE_DETAIL_ID LEFT OUTER JOIN
ICLEAR_CENTRALDB.dbo.USER_ACCOUNTS AS j WITH (nolock) ON g.ADJUSTED_BY = j.ACCOUNT_ID LEFT JOIN
ICLEAR_CENTRALDB.dbo.USER_CONTACT_INFO AS i WITH (nolock) ON j.CONTACT_INFO_ID = i.CONTACT_INFO_ID LEFT JOIN
dbo.INVOICE_ADJUSTMENT_REASONS AS k WITH (nolock) ON g.ADJUSTMENT_REASON_ID = k.ADJUSTMENT_REASON_ID
Thanks.
Gunjan
|
|

April 2nd, 2008, 11:54 PM
|
|
Friend of Wrox
|
|
Join Date: Oct 2006
Posts: 475
Thanks: 0
Thanked 9 Times in 9 Posts
|
|
You have 6 correlated sub-queries and that will definitely slow things down... a lot...
I recommend you convert them into a single derived table using a cross-tab. That information is in Books Online under "Cross Tab"
--Jeff Moden
|
|

April 3rd, 2008, 05:28 AM
|
|
Authorized User
|
|
Join Date: Apr 2007
Posts: 23
Thanks: 0
Thanked 0 Times in 0 Posts
|
|
Hi,
I am using SQL server 2000..
And it doesn't recognize ROW_NUMBER() function
Thanks.
Gunjan
|
|

April 3rd, 2008, 06:15 AM
|
|
Friend of Wrox
|
|
Join Date: Oct 2006
Posts: 475
Thanks: 0
Thanked 9 Times in 9 Posts
|
|
Cross Tab has nothing to do with Row_Number()...
Also, you really should post you SQL Server 2000 questions in the SQL Serve 2000 forum so people don't waste their time trying to answer you with the wrong technology.
--Jeff Moden
|
|

April 9th, 2008, 05:51 AM
|
|
Authorized User
|
|
Join Date: Jun 2003
Posts: 15
Thanks: 0
Thanked 0 Times in 0 Posts
|
|
I am not writing the entire code here.. My only concern is your sub queries.
You need to re-write them
This could be a way of writing. Please go and add additional columns to like to other tables
Code:
SELECT MAX(date_ordered) AS date_ordered,
MAX(date_completed) AS date_completed,
MAX(date_cancelled) AS date_cancelled,
MAX(date_service_begin) AS date_service_begin,
MAX(date_service_end) AS date_service_end,
MAX(date_open_date) AS date_open_date
FROM
(
SELECT a.INVOICE_DETAIL_ID, b.INVOICE_HEADER_ID, a.LINE_ITEM_CODE, c.LINE_ITEM_DESCRIPTION, d.GROUP_TITLE, a.QUANTITY, a.RATE,
CASE LINE_ITEM_DATE_ID WHEN 1 THEN DATE_OCCURRED ELSE '01/01/1900' END AS date_ordered,
CASE LINE_ITEM_DATE_ID WHEN 2 THEN DATE_OCCURRED ELSE '01/01/1900' END AS date_completed,
CASE LINE_ITEM_DATE_ID WHEN 3 THEN DATE_OCCURRED ELSE '01/01/1900' END AS date_cancelled,
CASE LINE_ITEM_DATE_ID WHEN 4 THEN DATE_OCCURRED ELSE '01/01/1900' END AS date_service_begin,
CASE LINE_ITEM_DATE_ID WHEN 5 THEN DATE_OCCURRED ELSE '01/01/1900' END AS date_service_end,
CASE LINE_ITEM_DATE_ID WHEN 6 THEN DATE_OCCURRED ELSE '01/01/1900' END AS date_open_date
FROM dbo.INVOICE_DETAIL_DATES
WHERE (INVOICE_DETAIL_ID = a.INVOICE_DETAIL_ID) AND (LINE_ITEM_CODE = a.LINE_ITEM_CODE)
) A
G.R.Preethiviraj Kulasingham
|
|
 |