給定SQL Server 2008的實例,想象一下名爲@Configuration
的表,它有三列:ID
,Code
和SubCode
。 Code
和SubCode
不應該有重複的行。如果存在配置,請選擇第一行,否則請選擇NULL行
現在想象另一個詳細程度表@ConfigurationDetails
,它們有Code
的重複行,子代碼可能是SubCode
作爲Null可用。
如果SubCode
可再挑Amt
和Data
從細節表直接,如果SubCode
是不是在細節上表可以再挑Amt
和Data
在NULL
記錄
(注:SubCode=NULL
條目始終適用於所有配置行)
任何想法從哪裏開始?
例如 一個簡單的例子... 表
declare @Configuration TABLE (
ID INTEGER IDENTITY PRIMARY KEY,
Code VARCHAR(50),
SubCode VARCHAR(50)
);
declare @ConfigurationDetails TABLE
(
Code VARCHAR(50),
SubCode VARCHAR(50),
Amt MONEY,
Data VARCHAR(123)
);
INSERT INTO @Configuration VALUES
('BR1','Sub1'),
('BR1','Sub2'),
('BR1','Sub3'),
('BR1','Sub4'),
('BR2','Sub1'),
('BR2','Sub2')
INSERT INTO @ConfigurationDetails VALUES
('BR1','Sub1',500,'BR1 Sub1 Data'),
('BR1','Sub2',600,'BR1 Sub2 Data'),
('BR1',NULL,700,'BR1 Data'),
('BR2','Sub1',500,'BR2 Sub1 Data'),
('BR2',NULL,700,'BR2 Data')
INPUT:
@SubCode = 'Sub1', @Code = 'BR1'
OUTPUT:
Code SubCode Amt Data
==== ======= === ====
BR1 Sub1 500 BR1 Sub1 Data
INPUT:
@SubCode = 'Sub4', @Code = 'BR1'
OUTPUT:
Code SubCode Amt Data
==== ======= === ====
BR1 NULL 700 BR1 Data
首先你的例子有錯誤,不能插入值,標識列(除非使用Insert_identity ),所以處理你的例子,然後再次訪問。 –
這聽起來很像一個學校作業。你有沒有試圖自己解決這個問題?如果是這樣,你的代碼在哪裏? – Tanner