Common SQL recipes
These are read-only. Replace the @variables with literal values when you paste them into SSMS.
Inventory
Section titled “Inventory”-- Active inventory by communitySELECT c.CommunityName, l.Status, COUNT(*) AS LotsFROM dbo.Lot lJOIN dbo.Project p ON p.ProjectID = l.ProjectIDJOIN dbo.Community c ON c.CommunityID = p.CommunityIDWHERE l.Status IN ('s','f','i','m','p')GROUP BY c.CommunityName, l.StatusORDER BY c.CommunityName, l.Status;Open contracts
Section titled “Open contracts”SELECT c.ContractSysID, cn.LastName + ', ' + cn.FirstName AS Buyer, p.ProjectName, l.Address, s.ContractStatusName, c.AcceptedDate, c.RatifiedDate, c.EstimatedClosedDateFROM dbo.Contract cJOIN dbo.ContractStatus s ON s.ContractStatusID = c.ContractStatusIDJOIN dbo.Lot l ON l.ProjectID = c.ProjectID AND l.BuildingID = c.BuildingID AND l.UnitID = c.UnitIDJOIN dbo.Project p ON p.ProjectID = c.ProjectIDLEFT JOIN dbo.Contact cn ON cn.ContactSysID = c.ContactSysIDWHERE c.ContractStatusID NOT IN ('clo','can','lc')ORDER BY c.AcceptedDate DESC;Critical schedule for a lot
Section titled “Critical schedule for a lot”SELECT a.ShortName, a.ActivityName, eca.SchedDate, eca.ActualDateFROM dbo.EstimateCriticalActivity ecaJOIN dbo.Activity a ON a.ActivityID = eca.ActivityIDWHERE eca.ProjectID = @ProjectID AND eca.BuildingID = @BuildingID AND eca.UnitID = @UnitIDORDER BY eca.SchedDate;POs by trade for a project
Section titled “POs by trade for a project”SELECT v.VendorName, COUNT(*) AS POs, SUM(po.Amount) AS DollarsFROM dbo.PurchaseOrder poJOIN dbo.Vendor v ON v.VendorID = po.VendorIDWHERE po.ProjectID = @ProjectIDGROUP BY v.VendorNameORDER BY Dollars DESC;Service requests open right now
Section titled “Service requests open right now”SELECT sr.RequestDate, sr.ProjectID, sr.BuildingID, sr.UnitID, srl.LineDescription, rls.ServiceRequestLineStatusName, rt.RequestTypeDescFROM dbo.ServiceRequest srJOIN dbo.ServiceRequestLine srl ON srl.ServiceRequestSysID = sr.ServiceRequestSysIDJOIN dbo.ServiceRequestLineStatus rls ON rls.ServiceRequestLineStatusID = srl.ServiceRequestLineStatusIDJOIN dbo.RequestType rt ON rt.RequestTypeID = sr.RequestTypeIDWHERE srl.ServiceRequestLineStatusID = 'o'ORDER BY sr.RequestDate;Service orders past deadline
Section titled “Service orders past deadline”SELECT so.SONumber, so.AssignedVendorID, v.VendorName, so.DeadlineDate, sr.ProjectID, sr.BuildingID, sr.UnitIDFROM dbo.ServiceOrder soJOIN dbo.ServiceRequest sr ON sr.ServiceRequestSysID = so.ServiceRequestSysIDJOIN dbo.Vendor v ON v.VendorID = so.AssignedVendorIDWHERE so.CompletedDate IS NULL AND so.DeadlineDate < CAST(GETDATE() AS date)ORDER BY so.DeadlineDate;Stuck transmissions
Section titled “Stuck transmissions”-- Transmission masters still queued or in error (join to a child table as needed)SELECT TOP 200 tm.TransmissionMasterSysID, tm.TransType, tm.Status, tm.ReturnMessage, tm.DateAdded, tm.DateSentFROM dbo.TransmissionMaster tm WITH (NOLOCK)WHERE tm.Status IN ('N', 'E')ORDER BY tm.DateAdded DESC;Lots whose schedule completion changed today
Section titled “Lots whose schedule completion changed today”SELECT l.ProjectID, l.BuildingID, l.UnitID, l.SchCompleteFROM dbo.Lot lWHERE l.Updated >= DATEADD(day, -1, GETDATE()) AND l.SchComplete IS NOT NULL;