請問如何找出圖片第一個表內,查詢條件下,數量為0的資料
目前是用
SELECT DISTINCT A.訂單號碼,A.電話,ISNULL(t.數量, 0) 數量
FROM 資料表 A
LEFT JOIN (SELECT 訂單號碼,電話,COUNT(狀態) 數量
FROM 資料表
WHERE 狀態='已收件'
GROUP BY 訂單號碼,電話) t
ON A.訂單號碼 = t.訂單號碼
WHERE ISNULL(數量,0)=0
找出來會是圖片第二個表
請問有更好的方法嗎?
參考...
declare @Tmp table(
訂單號碼 nvarchar(50)
,電話 nvarchar(50)
,狀態 nvarchar(50)
)
insert into @Tmp
values('01','0000','已收件')
,('01','0000','已收件')
,('02','1111','已申請')
,('02','1111','已申請')
SELECT 訂單號碼
,電話
,sum((case when 狀態 = '已收件' then 1 else 0 end)) 數量
FROM @Tmp
GROUP BY 訂單號碼
,電話
having sum((case when 狀態 = '已收件' then 1 else 0 end)) = 0
玩一下
CREATE TABLE YY (
訂單號碼 nvarchar(50),
電話 nvarchar(50),
狀態 nvarchar(50)
)
INSERT INTO YY
VALUES
('01', '0000', N'已收件'),
('01', '0000', N'已收件'),
('02', '1111', N'已收件'),
('02', '1111', N'已申請'),
('04', '2222', N'已申請'),
('04', '2222', N'已申請');
SELECT DISTINCT A.訂單號碼,A.電話,0 AS '數量'
FROM YY A
WHERE NOT EXISTS (SELECT *
FROM YY B
WHERE A.訂單號碼 = B.訂單號碼
AND A.電話 = B.電話
AND B.狀態 = N'已收件')