我們在計算每個縣,每個州數據庫中的供應商數量時遇到了很多麻煩。希望有人能幫助我。將表匹配到適當的組
我有一個名爲供應商的表,列出供應商ID(關鍵)及其當前分配。
下一張表稱爲郵政編碼,我需要的列是郵政編碼,FIPS(這是美國各縣的代碼)和州。這僅僅是可能的狀態,郵政編碼和FIPS的列表
我的第三個表是vendoraddresses,其中列出了每個供應商的地址,但沒有一個縣或FIPS列,否則這將是很容易的。有麻煩
即時工作:這是通過廠商ID密鑰
最後的表是縣,其具有以行(12345 =縣名即)排列爲每個FIPS代碼縣名鏈接到供應商表所有這些表格一起準確計算每個州每個縣的供應商數量。我覺得這真的不應該那麼難,但我猜想我打了一個腦袋。以下是我到目前爲止,但它不是我所需要的。林想知道如果一個工會或類似的東西會是一個更好的選擇將所有這些表放在一起。
SELECT
va.state
,pc.fips
,count(v.vendorid) as vendors
FROM
Vendors v
join vendoraddresses va on va.vendorid = v.vendorid
join postalcodes pc on pc.postalcode = va.postalcode
group by va.state, fips
order by va.state, fips
一些幫助IVE
所以試圖使一些進展:
SELECT
State1
,County
,COUNT(Vendor) as Vendors
FROM
(
SELECT
c.name as County, pc.State as State1, v.VendorID as Vendor
FROM
Vendors v
join vendorserviceareas vsa on vsa.vendorid = v.vendorid
join vendorserviceareaentries vsae on vsae.vendorserviceareaid = vsa.vendorserviceareaid
join counties c on c.fips = vsae.fips
join postalcodes pc on pc.fips = c.fips
union
select c.name as county, s.name as state1, vsa.Vendorid as Vendor from states s
join counties c on c.fips = s.fips
join vendorserviceareaentries vsae on vsae.fips = c.fips
join vendorserviceareas vsa on vsae.vendorserviceareaid = vsa.vendorserviceareaid
)a
GROUP BY State1, County
Order BY State1, County
附加的臺我已經添加有以下各列(用縮寫從查詢)VSA列1 = serviceareaid(數值ID) (varchar(50))
其他表vsae具有以下列,第1列= serviceareaid - 與上表相同,第2列= vendorid(數字id)列3 = description(描述服務區域的文本) fips =縣代碼(FK char(5))和郵政編碼(char (5))
對於一些更多的信息,每個服務都可以被稱爲「加利福尼亞州」或類似的那樣,然後系統具有每個州,然後縣,然後每個縣內的郵政編碼列出服務區,這我的問題大部分都是謊言,因爲我可以得到任何數量的縣郵政編碼,所以即時得到一個虛假的計數爲什麼我試圖做。
我的最終目標是找出每縣有多少供應商,而沒有考慮到一個縣的郵政編碼。
感謝您的幫助,郵政編碼表中的其他類型的信息是經度和緯度以及時區,不知道是否可以像上面顯示的那樣工作。我是潔具,我得到了不止一個縣的郵政編碼,但即時試圖只拉1縣/縣,會像在縣放MAX(郵政編碼)一樣簡單,你做的伎倆,你認爲?然後在查詢中正確使用它。僅列出每個縣的1個郵政編碼?即時通訊將嘗試這一點,併發布我的結果,如果即時通訊與它在某處。 – wondergoat77
@ wondergoat77。 。 。是的,你可以使用MAX。但是,您需要的是每個郵政編碼的MAX(fips)。 –
我編輯了我原來的帖子並添加了新的qeury。你可以看一下,讓我知道如果我的路是正確的,不知道我是否真的需要我使用或不使用的工會。包括一些新的表格,以及以上的表格 – wondergoat77