use CommunityAssist --another join of three tables --the as Aliases a column giving it a temporary --name for the result table --the as key word is actually optional Select p.Personkey, PersonLastName as "Last Name", PersonFirstname as "First Name", [Street],[Apartment],[State],[City],[Zip], [DonationDate],[DonationAmount] From Person p inner join PersonAddress pa on p.PersonKey=pa.PersonKey inner join donation d on p.PersonKey=d.PersonKey where DonationAmount > 1000 order by DonationAmount desc --a cross join matches every value in the first table --to every value in the second table Select PersonLastName, DonationAmount From Person cross Join Donation --getdate is a function that returns the current date and time select GetDate() as Today Select * from Donation --some date functions Select Distinct Year(DonationDate) as [Year] from Donation Select Distinct Month(DonationDate) as [Month] from Donation Select Distinct Day(DonationDate) as [Day] from Donation --DateDiff is a function that subtracts one date from --another. You have to specify the unit, the one below --specifies days, yy is years, mm is month Select DonationDate, DonationConfirmDate, DateDiff(dd,DonationDate, DonationConfirmDate) as "Time to Confirmation" From Donation --these are the basic aggregate functions Select Sum(DonationAmount)From Donation Select Avg(DonationAmount)From Donation Select Count(DonationAmount)From Donation Select Max(DonationAmount)From Donation Select Min(DonationAmount)From Donation --any column that is not included in the aggregate function --in this case sum must be include in a group by statment --the group by prioritizes the grouping from left to right Select Year(DonationDate) as [year], Month(DonationDate) as [Month], Sum(donationAmount) as total From Donation group by Year(DonationDate), Month(DonationDate) Select Year(DonationDate) as [year], Month(DonationDate) as [Month], Avg(donationAmount) as Average From Donation group by Year(DonationDate), Month(DonationDate) --the having clause is like the where clause --but is used when the criteria includes --an aggregate function, in this case count Select Month(DonationDate) as [Month], Day(DonationDate) as [Day], count(*) as [Count] From donation group by Month(DonationDate), Day(DonationDate) Having Count(DonationAmount) > 2 --insert a new person and then a new donation Insert into Person(PersonLastName, PersonFirstName) values('Bird','Larry') --the ident_current function returns the last autonumber --created in the table listed--it only works with autonumbers --(identities) Insert into Donation([DonationDate],[DonationAmount],[PersonKey]) Values(GetDate(), 5000.00,ident_Current('Person')) Select * from Person Select * From Donation --update changes existing data --it is crucial to have a where clause Update Person set PersonFirstname = 'Jason' where PersonKey=1 --transition manually creates a transistion --this allows you the possiblity of a undo (Rollback) Begin tran update Person Set PersonLastName='Smith' --undo the above transaction rollback tran --or write it commit tran --won't work because person 3 has related records --in other tables Delete from Person where personkey=3 Begin tran --this however will delete eveything in donation Delete from Donation
Wednesday, November 4, 2015
SQL Part 2
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment