謙虛我要求下一個問題的幫助。sql服務器評估一行到多行不重複
我有這個很簡單。不知道如何用文字描述它,所以我會用圖像來做。
表服務
PERSONID Service_id chargeamount
1 3 20.50
2 4 80.50
3 5 78.80
表收費
service_id payed extracharges
3 true 20.50
4 true 80.50
3 false 78.80
如果有任何unpayed extracharge它必須證明真或假,如果服務ID不會在第二個表匹配它必須是在查詢中顯示空值或其他計算值
類似這樣的東西
PERSONID Service_id chargeamount payed
1 3 20.50 false
2 4 80.50 true
3 5 78.80 null
但同一行的額外行不允許像連接創建的那些行。
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[SERVICES](
[personid] [int] NULL,
[service_id] [int] NULL,
[chargeamount] [float] NULL
) ON [PRIMARY]
GO
insert into services (personid,service_id,chargeamount) values (1,3 ,20);
insert into services (personid,service_id,chargeamount) values (2,4 ,20);
insert into services (personid,service_id,chargeamount) values (3,5 ,20);
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[charges](
[payed] [bit] NULL,
[service_id] [int] NULL,
[extracharges] [float] NULL
) ON [PRIMARY]
GO
insert into services (service_id,payed,extracharges) values (3,true,20.50);
insert into services (service_id,payed,extracharges) values (3,false,78.80);
insert into services (service_id,payed,extracharges) values (4,false,80.50);
爲什麼'Service_id' 3評估下'payed'到'FALSE'? – Kermit
我認爲這是一個錯誤,表中的第三行應顯示5,而不是3 –
這是一對多關係,我打算評估是否有費用表中的未付款費用;否則結果集行將顯示爲false會說真實 – GoAntonio