I created this blog to keep track of database and reporting tips, tricks, and features. Some of the information on this blog is from other websites. I am re-posting here so the information I have researched will be in a central location. The majority of the information on this blog is related to SQL Server, SSRS, SSIS, SSAS, BIDS, and Report Builder. I hope the information on this blog will be helpful to others and please feel free to share thoughts, ideas, and code.
Thursday, May 11, 2017
Format Date with DATEPART
This is helpful when you need to get rid of milliseconds in a date for sorting.
Monday, May 1, 2017
List of Date Formats
The website below has a list of SQL Server Date Formats.
http://www.sql-server-helper.com/tips/date-formats.aspx
http://www.sql-server-helper.com/tips/date-formats.aspx
Subquery Join with Max Date
The query below is used when you have a table with multiple rows per person and you want to select the MAX Date. First you will select the fields you want to display in the query, then you will create a subquery to select the Max Date, then you will join the query and subquery on the ID and the Max Date.
SELECT ind.studentid
,Convert(Datetime,StatusEffectiveDate) AS EDStartDate
,economicdisadvantagecode
,Isnull(ind.economicdisadvantagecode + '-' + lku3.codedesc, '') AS EconomicDisadvCode
INTO #sle3
FROM GetColumnsTable ind
LEFT OUTER JOIN LookUpTable lku3
ON lku3.code = ind.economicdisadvantagecode
AND lku3.type = 'ECO'
----This Part grabs the Max Effective Date for the ID
Inner Join
(
Select studentid, Max(Convert(Datetime,StatusEffectiveDate)) As StartDate
From GetColumnsTable ind
Group by StudentID
) ind2
----Here you join the first Query to the SubQuery and set your Criteria
on ind.StudentID = ind2.StudentID
and Convert(Datetime,ind.StatusEffectiveDate) = Convert(Datetime,ind2.StartDate)
Tuesday, February 21, 2017
Add Subquery As A Column
The SQL below adds aggregated columns to a query by using sub queries. The key to using this type of query is to join the inner and outer tables on the correct field.
Use the Instant SQL Formatter to Format the SQL below. Just copy and paste into the Formatter at: http://www.dpriver.com/pp/sqlformat.htm
Use the Instant SQL Formatter to Format the SQL below. Just copy and paste into the Formatter at: http://www.dpriver.com/pp/sqlformat.htm
SELECT DISTINCT a.eeo_cls,
a.classification,
(SELECT Count(b.prem_emp)
FROM #ee05temp b
WHERE b.[hispanic or latino] = 1
AND b.prem_gender = 'M'
AND b.eeo_cls = a.eeo_cls) AS 'M-H',
(SELECT Count(b.prem_emp)
FROM #ee05temp b
WHERE b.[hispanic or latino] = 1
AND b.prem_gender = 'F'
AND b.eeo_cls = a.eeo_cls) AS 'F-H',
(SELECT Count(b.prem_emp)
FROM #ee05temp b
WHERE b.[white] = 1
AND b.[hispanic or latino] <> 1
AND b.[black or african american] <> 1
AND b.asian <> 1
AND b.[native hawaiian or other pacific islander] <> 1
AND b.[american indian or alaska native] <> 1
AND b.prem_gender = 'M'
AND b.eeo_cls = a.eeo_cls) AS 'M-W',
(SELECT Count(b.prem_emp)
FROM #ee05temp b
WHERE b.[black or african american] = 1
AND b.[hispanic or latino] <> 1
AND b.[white] <> 1
AND b.asian <> 1
AND b.[native hawaiian or other pacific islander] <> 1
AND b.[american indian or alaska native] <> 1
AND b.prem_gender = 'M'
AND b.eeo_cls = a.eeo_cls) AS 'M-B',
(SELECT Count(b.prem_emp)
FROM #ee05temp b
WHERE b.[asian] = 1
AND b.[hispanic or latino] <> 1
AND b.[white] <> 1
AND b.[black or african american] <> 1
AND b.[native hawaiian or other pacific islander] <> 1
AND b.[american indian or alaska native] <> 1
AND b.prem_gender = 'M'
AND b.eeo_cls = a.eeo_cls) AS 'M-A',
(SELECT Count(b.prem_emp)
FROM #ee05temp b
WHERE b.[native hawaiian or other pacific islander] = 1
AND b.[hispanic or latino] <> 1
AND b.[white] <> 1
AND b.[black or african american] <> 1
AND b.[asian] <> 1
AND b.[american indian or alaska native] <> 1
AND b.prem_gender = 'M'
AND b.eeo_cls = a.eeo_cls) AS 'M-H',
(SELECT Count(b.prem_emp)
FROM #ee05temp b
WHERE b.[american indian or alaska native] = 1
AND b.[hispanic or latino] <> 1
AND b.[white] <> 1
AND b.[black or african american] <> 1
AND b.[asian] <> 1
AND b.[native hawaiian or other pacific islander] <> 1
AND b.prem_gender = 'M'
AND b.eeo_cls = a.eeo_cls) AS 'M-I',
(SELECT Count(b.prem_emp)
FROM #ee05temp b
WHERE b.[white] = 1
AND b.[hispanic or latino] <> 1
AND b.[black or african american] <> 1
AND b.asian <> 1
AND b.[native hawaiian or other pacific islander] <> 1
AND b.[american indian or alaska native] <> 1
AND b.prem_gender = 'F'
AND b.eeo_cls = a.eeo_cls) AS 'F-W',
(SELECT Count(b.prem_emp)
FROM #ee05temp b
WHERE b.[black or african american] = 1
AND b.[hispanic or latino] <> 1
AND b.[white] <> 1
AND b.asian <> 1
AND b.[native hawaiian or other pacific islander] <> 1
AND b.[american indian or alaska native] <> 1
AND b.prem_gender = 'F'
AND b.eeo_cls = a.eeo_cls) AS 'F-B',
(SELECT Count(b.prem_emp)
FROM #ee05temp b
WHERE b.[asian] = 1
AND b.[hispanic or latino] <> 1
AND b.[white] <> 1
AND b.[black or african american] <> 1
AND b.[native hawaiian or other pacific islander] <> 1
AND b.[american indian or alaska native] <> 1
AND b.prem_gender = 'F'
AND b.eeo_cls = a.eeo_cls) AS 'F-A',
(SELECT Count(b.prem_emp)
FROM #ee05temp b
WHERE b.[native hawaiian or other pacific islander] = 1
AND b.[hispanic or latino] <> 1
AND b.[white] <> 1
AND b.[black or african american] <> 1
AND b.[asian] <> 1
AND b.[american indian or alaska native] <> 1
AND b.prem_gender = 'F'
AND b.eeo_cls = a.eeo_cls) AS 'F-H',
(SELECT Count(b.prem_emp)
FROM #ee05temp b
WHERE b.[american indian or alaska native] = 1
AND b.[hispanic or latino] <> 1
AND b.[white] <> 1
AND b.[black or african american] <> 1
AND b.[asian] <> 1
AND b.[native hawaiian or other pacific islander] <> 1
AND b.prem_gender = 'F'
AND b.eeo_cls = a.eeo_cls) AS 'F-I',
(SELECT Count(C.prem_emp)
FROM #ee05_multiple C
WHERE C.prem_gender = 'M'
AND C.eeo_cls = a.eeo_cls) AS 'M-O',
(SELECT Count(C.prem_emp)
FROM #ee05_multiple C
WHERE C.prem_gender = 'F'
AND C.eeo_cls = a.eeo_cls) AS 'F-O'
FROM #ee05temp a
INNER JOIN #ee05temp b
ON a.prem_emp = b.prem_emp
INNER JOIN #ee05_multiple
ON a.prem_emp = b.prem_emp
GROUP BY a.classification,
a.eeo_cls
ORDER BY a.eeo_cls
Subscribe to:
Posts (Atom)