From: Pat M - City of Reno on
One of my co-workers and I are trying to figure out how this script works. I
do understand using multiple Select statements to get multiple result sets.
Can someone help us with what this script is doing? My take was that it's
like building arrays.

SELECT DISTINCT B1_ALT_ID, --B1_SUBDIVISION,
-- A1
(
SELECT B1_CHECKLIST_COMMENT
FROM BCHCKBOX BCB
WHERE
BCB.B1_PER_ID1 = B.B1_PER_ID1
AND BCB.B1_PER_ID2 = B.B1_PER_ID2
AND BCB.B1_PER_ID3 = B.B1_PER_ID3
AND BCB.SERV_PROV_CODE = B.SERV_PROV_CODE
AND BCB.B1_CHECKBOX_DESC = 'Final Map Name'
) Final_Map_Name,
-- B
(
SELECT B1_CHECKLIST_COMMENT
FROM BCHCKBOX BCB
WHERE
BCB.B1_PER_ID1 = B.B1_PER_ID1
AND BCB.B1_PER_ID2 = B.B1_PER_ID2
AND BCB.B1_PER_ID3 = B.B1_PER_ID3
AND BCB.SERV_PROV_CODE = B.SERV_PROV_CODE
AND BCB.B1_CHECKBOX_DESC = 'Security Release Date'
) Security_Release_Date,
-- B
(
SELECT B1_CHECKLIST_COMMENT
FROM BCHCKBOX BCB
WHERE
BCB.B1_PER_ID1 = B.B1_PER_ID1
AND BCB.B1_PER_ID2 = B.B1_PER_ID2
AND BCB.B1_PER_ID3 = B.B1_PER_ID3
AND BCB.SERV_PROV_CODE = B.SERV_PROV_CODE
AND BCB.B1_CHECKBOX_DESC = '10 Month Inspection Date'
) Month_Inspection

FROM B1PERMIT B
INNER JOIN B3PARCEL BP ON
--LEFT OUTER JOIN B3PARCEL BP ON
BP.B1_PER_ID1 = B.B1_PER_ID1
AND BP.B1_PER_ID2 = B.B1_PER_ID2
AND BP.B1_PER_ID3 = B.B1_PER_ID3
AND BP.SERV_PROV_CODE = B.SERV_PROV_CODE
LEFT OUTER JOIN GPROCESS_HISTORY G ON
/*WHERE*/ B.SERV_PROV_CODE = 'RENO'
AND B.B1_PER_ID1 = G.B1_PER_ID1
AND B.B1_PER_ID2 = G.B1_PER_ID2
AND B.B1_PER_ID3 = G.B1_PER_ID3
AND B.SERV_PROV_CODE = G.SERV_PROV_CODE
AND UPPER(G.SD_PRO_DES) NOT LIKE '%CLOSED%'
AND UPPER(B.B1_APPL_STATUS) NOT LIKE '%CLOSED%'
AND G.SD_PRO_DES = 'Acceptance of Improvements'
AND (
G.SD_PRO_DES = 'Accepted'
OR
G.SD_PRO_DES = 'City Council Not Required'
)
AND EXISTS
(
SELECT B1_CHECKLIST_COMMENT
FROM BCHCKBOX BCB
WHERE
BCB.B1_PER_ID1 = B.B1_PER_ID1
AND BCB.B1_PER_ID2 = B.B1_PER_ID2
AND BCB.B1_PER_ID3 = B.B1_PER_ID3
AND BCB.SERV_PROV_CODE = B.SERV_PROV_CODE
AND BCB.B1_CHECKBOX_DESC = 'Agreement Expiration'
AND B1_CHECKLIST_COMMENT != NULL
)
AND EXISTS
(
SELECT B1_CHECKLIST_COMMENT
FROM BCHCKBOX BCB
WHERE
BCB.B1_PER_ID1 = B.B1_PER_ID1
AND BCB.B1_PER_ID2 = B.B1_PER_ID2
AND BCB.B1_PER_ID3 = B.B1_PER_ID3
AND BCB.SERV_PROV_CODE = B.SERV_PROV_CODE
AND BCB.B1_CHECKBOX_DESC = 'Final Map Name'
AND B1_CHECKLIST_COMMENT != NULL
)
WHERE
EXISTS
-- Security Release date check.
(
SELECT B1_CHECKLIST_COMMENT
FROM BCHCKBOX BCB
WHERE
--BCB.B1_CHECKBOX_DESC = 'Security Release Date'
BCB.B1_PER_ID1 = B.B1_PER_ID1
AND BCB.B1_PER_ID2 = B.B1_PER_ID2
AND BCB.B1_PER_ID3 = B.B1_PER_ID3
AND BCB.SERV_PROV_CODE = B.SERV_PROV_CODE
AND BCB.B1_CHECKBOX_DESC = '10 Month Inspection Date'
AND TO_DATE(BCB.B1_CHECKLIST_COMMENT, 'MM/DD/YYYY') >= {?FROM_DATE}
AND TO_DATE(BCB.B1_CHECKLIST_COMMENT, 'MM/DD/YYYY') <= {?TO_DATE}
)
AND UPPER(B.B1_APPL_STATUS) NOT LIKE '%CLOSED%'



--
Regards,
Pat
From: Roy Harvey (SQL Server MVP) on
The "script" is a single SELECT command, which will return a single
result set. Do you understand the basics of the SELECT? This is not
simple SQL, and it appears to have evolved over time and maintenance.
Without knowing how much you understand it is hard to know where to
start.

The first three subqueries are items in the outer most SELECT's SELECT
list, the list of things being returned by the query. Note that those
subqueries only return a single value, rather than a set. The outer
SELECT command's FROM clause queries three tables (B1PERMIT, B3PARCEL,
GPROCESS_HISTORY), joining them using keys. EXISTS subqueries are
used to perform tests against other tables; and EXISTS subquery does
not return any results, just whether there were any matches.

To try to get into this any farther would require more information on
all the tables referenced, most especially on their keys and unique
constraints.

Roy Harvey
Beacon Falls, CT

On Tue, 1 Jul 2008 09:34:03 -0700, Pat M - City of Reno
<PatMCityofReno(a)discussions.microsoft.com> wrote:

>One of my co-workers and I are trying to figure out how this script works. I
>do understand using multiple Select statements to get multiple result sets.
>Can someone help us with what this script is doing? My take was that it's
>like building arrays.
>
>SELECT DISTINCT B1_ALT_ID, --B1_SUBDIVISION,
>-- A1
>(
> SELECT B1_CHECKLIST_COMMENT
> FROM BCHCKBOX BCB
> WHERE
> BCB.B1_PER_ID1 = B.B1_PER_ID1
> AND BCB.B1_PER_ID2 = B.B1_PER_ID2
> AND BCB.B1_PER_ID3 = B.B1_PER_ID3
> AND BCB.SERV_PROV_CODE = B.SERV_PROV_CODE
> AND BCB.B1_CHECKBOX_DESC = 'Final Map Name'
>) Final_Map_Name,
>-- B
>(
> SELECT B1_CHECKLIST_COMMENT
> FROM BCHCKBOX BCB
> WHERE
> BCB.B1_PER_ID1 = B.B1_PER_ID1
> AND BCB.B1_PER_ID2 = B.B1_PER_ID2
> AND BCB.B1_PER_ID3 = B.B1_PER_ID3
> AND BCB.SERV_PROV_CODE = B.SERV_PROV_CODE
> AND BCB.B1_CHECKBOX_DESC = 'Security Release Date'
>) Security_Release_Date,
>-- B
>(
> SELECT B1_CHECKLIST_COMMENT
> FROM BCHCKBOX BCB
> WHERE
> BCB.B1_PER_ID1 = B.B1_PER_ID1
> AND BCB.B1_PER_ID2 = B.B1_PER_ID2
> AND BCB.B1_PER_ID3 = B.B1_PER_ID3
> AND BCB.SERV_PROV_CODE = B.SERV_PROV_CODE
> AND BCB.B1_CHECKBOX_DESC = '10 Month Inspection Date'
>) Month_Inspection
>
>FROM B1PERMIT B
> INNER JOIN B3PARCEL BP ON
> --LEFT OUTER JOIN B3PARCEL BP ON
> BP.B1_PER_ID1 = B.B1_PER_ID1
> AND BP.B1_PER_ID2 = B.B1_PER_ID2
> AND BP.B1_PER_ID3 = B.B1_PER_ID3
> AND BP.SERV_PROV_CODE = B.SERV_PROV_CODE
> LEFT OUTER JOIN GPROCESS_HISTORY G ON
> /*WHERE*/ B.SERV_PROV_CODE = 'RENO'
> AND B.B1_PER_ID1 = G.B1_PER_ID1
> AND B.B1_PER_ID2 = G.B1_PER_ID2
> AND B.B1_PER_ID3 = G.B1_PER_ID3
> AND B.SERV_PROV_CODE = G.SERV_PROV_CODE
> AND UPPER(G.SD_PRO_DES) NOT LIKE '%CLOSED%'
> AND UPPER(B.B1_APPL_STATUS) NOT LIKE '%CLOSED%'
> AND G.SD_PRO_DES = 'Acceptance of Improvements'
> AND (
> G.SD_PRO_DES = 'Accepted'
> OR
> G.SD_PRO_DES = 'City Council Not Required'
> )
> AND EXISTS
> (
> SELECT B1_CHECKLIST_COMMENT
> FROM BCHCKBOX BCB
> WHERE
> BCB.B1_PER_ID1 = B.B1_PER_ID1
> AND BCB.B1_PER_ID2 = B.B1_PER_ID2
> AND BCB.B1_PER_ID3 = B.B1_PER_ID3
> AND BCB.SERV_PROV_CODE = B.SERV_PROV_CODE
> AND BCB.B1_CHECKBOX_DESC = 'Agreement Expiration'
> AND B1_CHECKLIST_COMMENT != NULL
> )
> AND EXISTS
> (
> SELECT B1_CHECKLIST_COMMENT
> FROM BCHCKBOX BCB
> WHERE
> BCB.B1_PER_ID1 = B.B1_PER_ID1
> AND BCB.B1_PER_ID2 = B.B1_PER_ID2
> AND BCB.B1_PER_ID3 = B.B1_PER_ID3
> AND BCB.SERV_PROV_CODE = B.SERV_PROV_CODE
> AND BCB.B1_CHECKBOX_DESC = 'Final Map Name'
> AND B1_CHECKLIST_COMMENT != NULL
> )
>WHERE
> EXISTS
> -- Security Release date check.
> (
> SELECT B1_CHECKLIST_COMMENT
> FROM BCHCKBOX BCB
> WHERE
> --BCB.B1_CHECKBOX_DESC = 'Security Release Date'
> BCB.B1_PER_ID1 = B.B1_PER_ID1
> AND BCB.B1_PER_ID2 = B.B1_PER_ID2
> AND BCB.B1_PER_ID3 = B.B1_PER_ID3
> AND BCB.SERV_PROV_CODE = B.SERV_PROV_CODE
> AND BCB.B1_CHECKBOX_DESC = '10 Month Inspection Date'
> AND TO_DATE(BCB.B1_CHECKLIST_COMMENT, 'MM/DD/YYYY') >= {?FROM_DATE}
> AND TO_DATE(BCB.B1_CHECKLIST_COMMENT, 'MM/DD/YYYY') <= {?TO_DATE}
> )
> AND UPPER(B.B1_APPL_STATUS) NOT LIKE '%CLOSED%'
From: Pat M - City of Reno on
Roy, that's enough info. Thanks very much. We will study from here and I
really appreciate the lead. Just learning all the quirks and trying to find
out what this was doing.
--
Regards,
Pat


"Pat M - City of Reno" wrote:

> One of my co-workers and I are trying to figure out how this script works. I
> do understand using multiple Select statements to get multiple result sets.
> Can someone help us with what this script is doing? My take was that it's
> like building arrays.
>
> SELECT DISTINCT B1_ALT_ID, --B1_SUBDIVISION,
> -- A1
> (
> SELECT B1_CHECKLIST_COMMENT
> FROM BCHCKBOX BCB
> WHERE
> BCB.B1_PER_ID1 = B.B1_PER_ID1
> AND BCB.B1_PER_ID2 = B.B1_PER_ID2
> AND BCB.B1_PER_ID3 = B.B1_PER_ID3
> AND BCB.SERV_PROV_CODE = B.SERV_PROV_CODE
> AND BCB.B1_CHECKBOX_DESC = 'Final Map Name'
> ) Final_Map_Name,
> -- B
> (
> SELECT B1_CHECKLIST_COMMENT
> FROM BCHCKBOX BCB
> WHERE
> BCB.B1_PER_ID1 = B.B1_PER_ID1
> AND BCB.B1_PER_ID2 = B.B1_PER_ID2
> AND BCB.B1_PER_ID3 = B.B1_PER_ID3
> AND BCB.SERV_PROV_CODE = B.SERV_PROV_CODE
> AND BCB.B1_CHECKBOX_DESC = 'Security Release Date'
> ) Security_Release_Date,
> -- B
> (
> SELECT B1_CHECKLIST_COMMENT
> FROM BCHCKBOX BCB
> WHERE
> BCB.B1_PER_ID1 = B.B1_PER_ID1
> AND BCB.B1_PER_ID2 = B.B1_PER_ID2
> AND BCB.B1_PER_ID3 = B.B1_PER_ID3
> AND BCB.SERV_PROV_CODE = B.SERV_PROV_CODE
> AND BCB.B1_CHECKBOX_DESC = '10 Month Inspection Date'
> ) Month_Inspection
>
> FROM B1PERMIT B
> INNER JOIN B3PARCEL BP ON
> --LEFT OUTER JOIN B3PARCEL BP ON
> BP.B1_PER_ID1 = B.B1_PER_ID1
> AND BP.B1_PER_ID2 = B.B1_PER_ID2
> AND BP.B1_PER_ID3 = B.B1_PER_ID3
> AND BP.SERV_PROV_CODE = B.SERV_PROV_CODE
> LEFT OUTER JOIN GPROCESS_HISTORY G ON
> /*WHERE*/ B.SERV_PROV_CODE = 'RENO'
> AND B.B1_PER_ID1 = G.B1_PER_ID1
> AND B.B1_PER_ID2 = G.B1_PER_ID2
> AND B.B1_PER_ID3 = G.B1_PER_ID3
> AND B.SERV_PROV_CODE = G.SERV_PROV_CODE
> AND UPPER(G.SD_PRO_DES) NOT LIKE '%CLOSED%'
> AND UPPER(B.B1_APPL_STATUS) NOT LIKE '%CLOSED%'
> AND G.SD_PRO_DES = 'Acceptance of Improvements'
> AND (
> G.SD_PRO_DES = 'Accepted'
> OR
> G.SD_PRO_DES = 'City Council Not Required'
> )
> AND EXISTS
> (
> SELECT B1_CHECKLIST_COMMENT
> FROM BCHCKBOX BCB
> WHERE
> BCB.B1_PER_ID1 = B.B1_PER_ID1
> AND BCB.B1_PER_ID2 = B.B1_PER_ID2
> AND BCB.B1_PER_ID3 = B.B1_PER_ID3
> AND BCB.SERV_PROV_CODE = B.SERV_PROV_CODE
> AND BCB.B1_CHECKBOX_DESC = 'Agreement Expiration'
> AND B1_CHECKLIST_COMMENT != NULL
> )
> AND EXISTS
> (
> SELECT B1_CHECKLIST_COMMENT
> FROM BCHCKBOX BCB
> WHERE
> BCB.B1_PER_ID1 = B.B1_PER_ID1
> AND BCB.B1_PER_ID2 = B.B1_PER_ID2
> AND BCB.B1_PER_ID3 = B.B1_PER_ID3
> AND BCB.SERV_PROV_CODE = B.SERV_PROV_CODE
> AND BCB.B1_CHECKBOX_DESC = 'Final Map Name'
> AND B1_CHECKLIST_COMMENT != NULL
> )
> WHERE
> EXISTS
> -- Security Release date check.
> (
> SELECT B1_CHECKLIST_COMMENT
> FROM BCHCKBOX BCB
> WHERE
> --BCB.B1_CHECKBOX_DESC = 'Security Release Date'
> BCB.B1_PER_ID1 = B.B1_PER_ID1
> AND BCB.B1_PER_ID2 = B.B1_PER_ID2
> AND BCB.B1_PER_ID3 = B.B1_PER_ID3
> AND BCB.SERV_PROV_CODE = B.SERV_PROV_CODE
> AND BCB.B1_CHECKBOX_DESC = '10 Month Inspection Date'
> AND TO_DATE(BCB.B1_CHECKLIST_COMMENT, 'MM/DD/YYYY') >= {?FROM_DATE}
> AND TO_DATE(BCB.B1_CHECKLIST_COMMENT, 'MM/DD/YYYY') <= {?TO_DATE}
> )
> AND UPPER(B.B1_APPL_STATUS) NOT LIKE '%CLOSED%'
>
>
>
> --
> Regards,
> Pat
From: Rich on
SELECT DISTINCT B1_ALT_ID, --B1_SUBDIVISION,
-- A1 <-- this is just a marker
(
...
) Final_Map_Name, <--- this is a dynamic field (subquery based - should
return only one value per row
-- B <-- another marker
(
....
) Security_Release_Date, <-- another dynamic field (subquery based)
-- B
(
...
) Month_Inspection <-- and another dynamice field (subquery based)

--source data to pull from with a bunch of complex joins
FROM B1PERMIT B
INNER JOIN B3PARCEL BP ON
--LEFT OUTER JOIN B3PARCEL BP ON
BP.B1_PER_ID1 = B.B1_PER_ID1
AND BP.B1_PER_ID2 = B.B1_PER_ID2
AND BP.B1_PER_ID3 = B.B1_PER_ID3
AND BP.SERV_PROV_CODE = B.SERV_PROV_CODE
LEFT OUTER JOIN GPROCESS_HISTORY G ON
/*WHERE*/ B.SERV_PROV_CODE = 'RENO'
AND B.B1_PER_ID1 = G.B1_PER_ID1
AND B.B1_PER_ID2 = G.B1_PER_ID2
AND B.B1_PER_ID3 = G.B1_PER_ID3
AND B.SERV_PROV_CODE = G.SERV_PROV_CODE
AND UPPER(G.SD_PRO_DES) NOT LIKE '%CLOSED%'
AND UPPER(B.B1_APPL_STATUS) NOT LIKE '%CLOSED%'
AND G.SD_PRO_DES = 'Acceptance of Improvements'
AND (
G.SD_PRO_DES = 'Accepted'
OR
G.SD_PRO_DES = 'City Council Not Required'
)
AND EXISTS
(
SELECT B1_CHECKLIST_COMMENT
FROM BCHCKBOX BCB
WHERE
BCB.B1_PER_ID1 = B.B1_PER_ID1
AND BCB.B1_PER_ID2 = B.B1_PER_ID2
AND BCB.B1_PER_ID3 = B.B1_PER_ID3
AND BCB.SERV_PROV_CODE = B.SERV_PROV_CODE
AND BCB.B1_CHECKBOX_DESC = 'Agreement Expiration'
AND B1_CHECKLIST_COMMENT != NULL
)
AND EXISTS
(
SELECT B1_CHECKLIST_COMMENT
FROM BCHCKBOX BCB
WHERE
BCB.B1_PER_ID1 = B.B1_PER_ID1
AND BCB.B1_PER_ID2 = B.B1_PER_ID2
AND BCB.B1_PER_ID3 = B.B1_PER_ID3
AND BCB.SERV_PROV_CODE = B.SERV_PROV_CODE
AND BCB.B1_CHECKBOX_DESC = 'Final Map Name'
AND B1_CHECKLIST_COMMENT != NULL
)
--lastly a Where clause
WHERE
EXISTS
-- Security Release date check.
(
SELECT B1_CHECKLIST_COMMENT
FROM BCHCKBOX BCB
WHERE
--BCB.B1_CHECKBOX_DESC = 'Security Release Date'
BCB.B1_PER_ID1 = B.B1_PER_ID1
AND BCB.B1_PER_ID2 = B.B1_PER_ID2
AND BCB.B1_PER_ID3 = B.B1_PER_ID3
AND BCB.SERV_PROV_CODE = B.SERV_PROV_CODE
AND BCB.B1_CHECKBOX_DESC = '10 Month Inspection Date'
AND TO_DATE(BCB.B1_CHECKLIST_COMMENT, 'MM/DD/YYYY') >= {?FROM_DATE}
AND TO_DATE(BCB.B1_CHECKLIST_COMMENT, 'MM/DD/YYYY') <= {?TO_DATE}
)
AND UPPER(B.B1_APPL_STATUS) NOT LIKE '%CLOSED%'

-----------------------------

I hate these kinds of queries. I think I would break this up into smaller
bite size procs and use #temp tables - lot easier to debug. I don't know the
context of this query, and it is possible this may be the only way to do it
(but I doubt that). Plese tell me this runs real slow because I am seeing a
lot of guess work on the part of the computer:


AND UPPER(G.SD_PRO_DES) NOT LIKE '%CLOSED%'
AND UPPER(B.B1_APPL_STATUS) NOT LIKE '%CLOSED%'

AND TO_DATE(BCB.B1_CHECKLIST_COMMENT, 'MM/DD/YYYY') >= {?FROM_DATE}
AND TO_DATE(BCB.B1_CHECKLIST_COMMENT, 'MM/DD/YYYY') <= {?TO_DATE}

LIKE '%CLOSED%'

----------------------------------

My guess is that the source data is probably not real clean and the author
is compensating for this -- instead of going through a full fledge data
cleaning process (which I am currently involved in - and taking upwards of 2
years - so I can sort of appreciate why all the quess work).

Rich


"Pat M - City of Reno" wrote:

> One of my co-workers and I are trying to figure out how this script works. I
> do understand using multiple Select statements to get multiple result sets.
> Can someone help us with what this script is doing? My take was that it's
> like building arrays.
>
> SELECT DISTINCT B1_ALT_ID, --B1_SUBDIVISION,
> -- A1
> (
> SELECT B1_CHECKLIST_COMMENT
> FROM BCHCKBOX BCB
> WHERE
> BCB.B1_PER_ID1 = B.B1_PER_ID1
> AND BCB.B1_PER_ID2 = B.B1_PER_ID2
> AND BCB.B1_PER_ID3 = B.B1_PER_ID3
> AND BCB.SERV_PROV_CODE = B.SERV_PROV_CODE
> AND BCB.B1_CHECKBOX_DESC = 'Final Map Name'
> ) Final_Map_Name,
> -- B
> (
> SELECT B1_CHECKLIST_COMMENT
> FROM BCHCKBOX BCB
> WHERE
> BCB.B1_PER_ID1 = B.B1_PER_ID1
> AND BCB.B1_PER_ID2 = B.B1_PER_ID2
> AND BCB.B1_PER_ID3 = B.B1_PER_ID3
> AND BCB.SERV_PROV_CODE = B.SERV_PROV_CODE
> AND BCB.B1_CHECKBOX_DESC = 'Security Release Date'
> ) Security_Release_Date,
> -- B
> (
> SELECT B1_CHECKLIST_COMMENT
> FROM BCHCKBOX BCB
> WHERE
> BCB.B1_PER_ID1 = B.B1_PER_ID1
> AND BCB.B1_PER_ID2 = B.B1_PER_ID2
> AND BCB.B1_PER_ID3 = B.B1_PER_ID3
> AND BCB.SERV_PROV_CODE = B.SERV_PROV_CODE
> AND BCB.B1_CHECKBOX_DESC = '10 Month Inspection Date'
> ) Month_Inspection
>
> FROM B1PERMIT B
> INNER JOIN B3PARCEL BP ON
> --LEFT OUTER JOIN B3PARCEL BP ON
> BP.B1_PER_ID1 = B.B1_PER_ID1
> AND BP.B1_PER_ID2 = B.B1_PER_ID2
> AND BP.B1_PER_ID3 = B.B1_PER_ID3
> AND BP.SERV_PROV_CODE = B.SERV_PROV_CODE
> LEFT OUTER JOIN GPROCESS_HISTORY G ON
> /*WHERE*/ B.SERV_PROV_CODE = 'RENO'
> AND B.B1_PER_ID1 = G.B1_PER_ID1
> AND B.B1_PER_ID2 = G.B1_PER_ID2
> AND B.B1_PER_ID3 = G.B1_PER_ID3
> AND B.SERV_PROV_CODE = G.SERV_PROV_CODE
> AND UPPER(G.SD_PRO_DES) NOT LIKE '%CLOSED%'
> AND UPPER(B.B1_APPL_STATUS) NOT LIKE '%CLOSED%'
> AND G.SD_PRO_DES = 'Acceptance of Improvements'
> AND (
> G.SD_PRO_DES = 'Accepted'
> OR
> G.SD_PRO_DES = 'City Council Not Required'
> )
> AND EXISTS
> (
> SELECT B1_CHECKLIST_COMMENT
> FROM BCHCKBOX BCB
> WHERE
> BCB.B1_PER_ID1 = B.B1_PER_ID1
> AND BCB.B1_PER_ID2 = B.B1_PER_ID2
> AND BCB.B1_PER_ID3 = B.B1_PER_ID3
> AND BCB.SERV_PROV_CODE = B.SERV_PROV_CODE
> AND BCB.B1_CHECKBOX_DESC = 'Agreement Expiration'
> AND B1_CHECKLIST_COMMENT != NULL
> )
> AND EXISTS
> (
> SELECT B1_CHECKLIST_COMMENT
> FROM BCHCKBOX BCB
> WHERE
> BCB.B1_PER_ID1 = B.B1_PER_ID1
> AND BCB.B1_PER_ID2 = B.B1_PER_ID2
> AND BCB.B1_PER_ID3 = B.B1_PER_ID3
> AND BCB.SERV_PROV_CODE = B.SERV_PROV_CODE
> AND BCB.B1_CHECKBOX_DESC = 'Final Map Name'
> AND B1_CHECKLIST_COMMENT != NULL
> )
> WHERE
> EXISTS
> -- Security Release date check.
> (
> SELECT B1_CHECKLIST_COMMENT
> FROM BCHCKBOX BCB
> WHERE
> --BCB.B1_CHECKBOX_DESC = 'Security Release Date'
> BCB.B1_PER_ID1 = B.B1_PER_ID1
> AND BCB.B1_PER_ID2 = B.B1_PER_ID2
> AND BCB.B1_PER_ID3 = B.B1_PER_ID3
> AND BCB.SERV_PROV_CODE = B.SERV_PROV_CODE
> AND BCB.B1_CHECKBOX_DESC = '10 Month Inspection Date'
> AND TO_DATE(BCB.B1_CHECKLIST_COMMENT, 'MM/DD/YYYY') >= {?FROM_DATE}
> AND TO_DATE(BCB.B1_CHECKLIST_COMMENT, 'MM/DD/YYYY') <= {?TO_DATE}
> )
> AND UPPER(B.B1_APPL_STATUS) NOT LIKE '%CLOSED%'
>
>
>
> --
> Regards,
> Pat
From: Pat M - City of Reno on
Thanks Rich. I'm a Sr Systems Analyst and do SQL Server admin not a lot of
programming except for views and reports. A new systems analyst asked me
about this and my first reaction was why do all this seems convoluted. I just
thought I was very very ignorant. I will tell the analyst not to copy this
style unless the data requires it. The tables are very convoluted on this
product I can tell you that.
--
Regards,
Pat


"Rich" wrote:

> SELECT DISTINCT B1_ALT_ID, --B1_SUBDIVISION,
> -- A1 <-- this is just a marker
> (
> ...
> ) Final_Map_Name, <--- this is a dynamic field (subquery based - should
> return only one value per row
> -- B <-- another marker
> (
> ...
> ) Security_Release_Date, <-- another dynamic field (subquery based)
> -- B
> (
> ...
> ) Month_Inspection <-- and another dynamice field (subquery based)
>
> --source data to pull from with a bunch of complex joins
> FROM B1PERMIT B
> INNER JOIN B3PARCEL BP ON
> --LEFT OUTER JOIN B3PARCEL BP ON
> BP.B1_PER_ID1 = B.B1_PER_ID1
> AND BP.B1_PER_ID2 = B.B1_PER_ID2
> AND BP.B1_PER_ID3 = B.B1_PER_ID3
> AND BP.SERV_PROV_CODE = B.SERV_PROV_CODE
> LEFT OUTER JOIN GPROCESS_HISTORY G ON
> /*WHERE*/ B.SERV_PROV_CODE = 'RENO'
> AND B.B1_PER_ID1 = G.B1_PER_ID1
> AND B.B1_PER_ID2 = G.B1_PER_ID2
> AND B.B1_PER_ID3 = G.B1_PER_ID3
> AND B.SERV_PROV_CODE = G.SERV_PROV_CODE
> AND UPPER(G.SD_PRO_DES) NOT LIKE '%CLOSED%'
> AND UPPER(B.B1_APPL_STATUS) NOT LIKE '%CLOSED%'
> AND G.SD_PRO_DES = 'Acceptance of Improvements'
> AND (
> G.SD_PRO_DES = 'Accepted'
> OR
> G.SD_PRO_DES = 'City Council Not Required'
> )
> AND EXISTS
> (
> SELECT B1_CHECKLIST_COMMENT
> FROM BCHCKBOX BCB
> WHERE
> BCB.B1_PER_ID1 = B.B1_PER_ID1
> AND BCB.B1_PER_ID2 = B.B1_PER_ID2
> AND BCB.B1_PER_ID3 = B.B1_PER_ID3
> AND BCB.SERV_PROV_CODE = B.SERV_PROV_CODE
> AND BCB.B1_CHECKBOX_DESC = 'Agreement Expiration'
> AND B1_CHECKLIST_COMMENT != NULL
> )
> AND EXISTS
> (
> SELECT B1_CHECKLIST_COMMENT
> FROM BCHCKBOX BCB
> WHERE
> BCB.B1_PER_ID1 = B.B1_PER_ID1
> AND BCB.B1_PER_ID2 = B.B1_PER_ID2
> AND BCB.B1_PER_ID3 = B.B1_PER_ID3
> AND BCB.SERV_PROV_CODE = B.SERV_PROV_CODE
> AND BCB.B1_CHECKBOX_DESC = 'Final Map Name'
> AND B1_CHECKLIST_COMMENT != NULL
> )
> --lastly a Where clause
> WHERE
> EXISTS
> -- Security Release date check.
> (
> SELECT B1_CHECKLIST_COMMENT
> FROM BCHCKBOX BCB
> WHERE
> --BCB.B1_CHECKBOX_DESC = 'Security Release Date'
> BCB.B1_PER_ID1 = B.B1_PER_ID1
> AND BCB.B1_PER_ID2 = B.B1_PER_ID2
> AND BCB.B1_PER_ID3 = B.B1_PER_ID3
> AND BCB.SERV_PROV_CODE = B.SERV_PROV_CODE
> AND BCB.B1_CHECKBOX_DESC = '10 Month Inspection Date'
> AND TO_DATE(BCB.B1_CHECKLIST_COMMENT, 'MM/DD/YYYY') >= {?FROM_DATE}
> AND TO_DATE(BCB.B1_CHECKLIST_COMMENT, 'MM/DD/YYYY') <= {?TO_DATE}
> )
> AND UPPER(B.B1_APPL_STATUS) NOT LIKE '%CLOSED%'
>
> -----------------------------
>
> I hate these kinds of queries. I think I would break this up into smaller
> bite size procs and use #temp tables - lot easier to debug. I don't know the
> context of this query, and it is possible this may be the only way to do it
> (but I doubt that). Plese tell me this runs real slow because I am seeing a
> lot of guess work on the part of the computer:
>
>
> AND UPPER(G.SD_PRO_DES) NOT LIKE '%CLOSED%'
> AND UPPER(B.B1_APPL_STATUS) NOT LIKE '%CLOSED%'
>
> AND TO_DATE(BCB.B1_CHECKLIST_COMMENT, 'MM/DD/YYYY') >= {?FROM_DATE}
> AND TO_DATE(BCB.B1_CHECKLIST_COMMENT, 'MM/DD/YYYY') <= {?TO_DATE}
>
> LIKE '%CLOSED%'
>
> ----------------------------------
>
> My guess is that the source data is probably not real clean and the author
> is compensating for this -- instead of going through a full fledge data
> cleaning process (which I am currently involved in - and taking upwards of 2
> years - so I can sort of appreciate why all the quess work).
>
> Rich
>
>
> "Pat M - City of Reno" wrote:
>
> > One of my co-workers and I are trying to figure out how this script works. I
> > do understand using multiple Select statements to get multiple result sets.
> > Can someone help us with what this script is doing? My take was that it's
> > like building arrays.
> >
> > SELECT DISTINCT B1_ALT_ID, --B1_SUBDIVISION,
> > -- A1
> > (
> > SELECT B1_CHECKLIST_COMMENT
> > FROM BCHCKBOX BCB
> > WHERE
> > BCB.B1_PER_ID1 = B.B1_PER_ID1
> > AND BCB.B1_PER_ID2 = B.B1_PER_ID2
> > AND BCB.B1_PER_ID3 = B.B1_PER_ID3
> > AND BCB.SERV_PROV_CODE = B.SERV_PROV_CODE
> > AND BCB.B1_CHECKBOX_DESC = 'Final Map Name'
> > ) Final_Map_Name,
> > -- B
> > (
> > SELECT B1_CHECKLIST_COMMENT
> > FROM BCHCKBOX BCB
> > WHERE
> > BCB.B1_PER_ID1 = B.B1_PER_ID1
> > AND BCB.B1_PER_ID2 = B.B1_PER_ID2
> > AND BCB.B1_PER_ID3 = B.B1_PER_ID3
> > AND BCB.SERV_PROV_CODE = B.SERV_PROV_CODE
> > AND BCB.B1_CHECKBOX_DESC = 'Security Release Date'
> > ) Security_Release_Date,
> > -- B
> > (
> > SELECT B1_CHECKLIST_COMMENT
> > FROM BCHCKBOX BCB
> > WHERE
> > BCB.B1_PER_ID1 = B.B1_PER_ID1
> > AND BCB.B1_PER_ID2 = B.B1_PER_ID2
> > AND BCB.B1_PER_ID3 = B.B1_PER_ID3
> > AND BCB.SERV_PROV_CODE = B.SERV_PROV_CODE
> > AND BCB.B1_CHECKBOX_DESC = '10 Month Inspection Date'
> > ) Month_Inspection
> >
> > FROM B1PERMIT B
> > INNER JOIN B3PARCEL BP ON
> > --LEFT OUTER JOIN B3PARCEL BP ON
> > BP.B1_PER_ID1 = B.B1_PER_ID1
> > AND BP.B1_PER_ID2 = B.B1_PER_ID2
> > AND BP.B1_PER_ID3 = B.B1_PER_ID3
> > AND BP.SERV_PROV_CODE = B.SERV_PROV_CODE
> > LEFT OUTER JOIN GPROCESS_HISTORY G ON
> > /*WHERE*/ B.SERV_PROV_CODE = 'RENO'
> > AND B.B1_PER_ID1 = G.B1_PER_ID1
> > AND B.B1_PER_ID2 = G.B1_PER_ID2
> > AND B.B1_PER_ID3 = G.B1_PER_ID3
> > AND B.SERV_PROV_CODE = G.SERV_PROV_CODE
> > AND UPPER(G.SD_PRO_DES) NOT LIKE '%CLOSED%'
> > AND UPPER(B.B1_APPL_STATUS) NOT LIKE '%CLOSED%'
> > AND G.SD_PRO_DES = 'Acceptance of Improvements'
> > AND (
> > G.SD_PRO_DES = 'Accepted'
> > OR
> > G.SD_PRO_DES = 'City Council Not Required'
> > )
> > AND EXISTS
> > (
> > SELECT B1_CHECKLIST_COMMENT
> > FROM BCHCKBOX BCB
> > WHERE
> > BCB.B1_PER_ID1 = B.B1_PER_ID1
> > AND BCB.B1_PER_ID2 = B.B1_PER_ID2
> > AND BCB.B1_PER_ID3 = B.B1_PER_ID3
> > AND BCB.SERV_PROV_CODE = B.SERV_PROV_CODE
> > AND BCB.B1_CHECKBOX_DESC = 'Agreement Expiration'
> > AND B1_CHECKLIST_COMMENT != NULL
> > )
> > AND EXISTS
> > (
> > SELECT B1_CHECKLIST_COMMENT
> > FROM BCHCKBOX BCB
> > WHERE
> > BCB.B1_PER_ID1 = B.B1_PER_ID1
> > AND BCB.B1_PER_ID2 = B.B1_PER_ID2
> > AND BCB.B1_PER_ID3 = B.B1_PER_ID3
> > AND BCB.SERV_PROV_CODE = B.SERV_PROV_CODE
> > AND BCB.B1_CHECKBOX_DESC = 'Final Map Name'
> > AND B1_CHECKLIST_COMMENT != NULL
> > )
> > WHERE
> > EXISTS
> > -- Security Release date check.
> > (
> > SELECT B1_CHECKLIST_COMMENT
> > FROM BCHCKBOX BCB
> > WHERE
> > --BCB.B1_CHECKBOX_DESC = 'Security Release Date'
> > BCB.B1_PER_ID1 = B.B1_PER_ID1
> > AND BCB.B1_PER_ID2 = B.B1_PER_ID2
> > AND BCB.B1_PER_ID3 = B.B1_PER_ID3
> > AND BCB.SERV_PROV_CODE = B.SERV_PROV_CODE
> > AND BCB.B1_CHECKBOX_DESC = '10 Month Inspection Date'
> > AND TO_DATE(BCB.B1_CHECKLIST_COMMENT, 'MM/DD/YYYY') >= {?FROM_DATE}
> > AND TO_DATE(BCB.B1_CHECKLIST_COMMENT, 'MM/DD/YYYY') <= {?TO_DATE}
> > )
> > AND UPPER(B.B1_APPL_STATUS) NOT LIKE '%CLOSED%'
> >
> >
> >
> > --
> > Regards,
> > Pat