Company
クエリしたいいくつかの列を持つテーブルがあるシナリオがあります
- 名前
- IsHighPriority
- クーポン(外部キー)
ここで、 High Priority
trueの場合は(High Priorty)
会社名の列の前に配置し、会社に3つ以上のクーポンがある場合は、(Important)
会社名の前に配置します。
これを行う方法?よろしくお願いします。
編集
これをすべてSQLビューに追加したい場合は、どうすればよいですか。これをSQLビューに追加しようとすると、エラーが発生するためです。
列1に列名が指定されていないため、ビューまたは関数の作成に失敗しました。
編集#2
このクエリに基づいて会社のクーポンカウントを選択したい
RejectProcessed = 0 and ReviewVerify = 0 and isPublish = 0 and ForSupervisor = 0
つまり、すべての会社でクーポンの数を取得する場合、これらはCOUPONテーブルにすでに存在するフィールドであるすべてのクーポンにこのクエリを挿入する必要があります。
詳細が必要な場合はお知らせください
これは私がntビューを作成した方法です
Create view GetCompanyNames as
SELECT CASE WHEN COALESCE(b.totalCoupons, 0) > 3 THEN a.Name +'(Important) '
WHEN IsHighPriority = 1 THEN a.Name +'(High Priority) '
ELSE a.Name +''
END AS CompanyName
FROM Company a
LEFT JOIN
(
SELECT Name, COUNT(*) totalCoupons
FROM Company
GROUP BY Name
) b ON a.name = b.name