sql - 如何选择有两组的公司
问题描述
我仍然尝试选择两组中的所有客户。客户重复是正常的,因为选择来自发票,但我需要知道上半年有一个组并在下半年跳转到另一个的客户。
例子:
SELECT
f.eankod as kod, --(groups)
ad.kod as firma, --(markComp)
f.nazfirmy as nazev, --(nameComp)
COUNT(ad.kod),
sum(f.sumZklZakl + f.sumZklSniz + f.sumOsv) as cena_bez_dph --(Price)
FROM
ddoklfak as f
LEFT OUTER JOIN aadresar ad ON ad.idfirmy = f.idfirmy
WHERE
f.datvyst >= '2017-01-01'
and f.datvyst <= '2017-12-31'
and f.modul like 'FAV'
GROUP BY
f.eankod,
ad.kod,
f.nazfirmy
HAVING COUNT (ad.kod) > 1
order by
ad.kod
结果:
GROUP markcomp nameComp price
| D002 | B5846 | Cosmopolis | price ... |
| D003 | B6987 | Tismotis | price ... |
| D009 | B8974 | Teramis | price ... |
| D006 | B8876 | Kesmethis | price ... | I need this, same company but diferent group, because this
| D008 | B8876 | Kesmethis | price ... | company jumped. I need know only jumped company. (last two rows from examples)
谢谢帮助。
解决方案
您可以使用 CTE 找出哪些nameComp
出现多次,并只保留那些。例如:
with
x as (
-- your query
)
select * from x where nameComp in (
select nameComp from x group by nameComp having count(*) > 1
)
推荐阅读
- javascript - 我可以将 let 定义为变量,但它应该给出语法错误,因为 let 是关键字。另一方面,将 const 定义为变量会产生错误
- eventtrigger - Hasura 1.3.0 中的事件触发器是否损坏?
- azure-devops - Azure Pipelines YAML:意外的值“变量”和意外的“阶段”
- python - 如何在 Python 中创建分布条形图
- sql-server - 在一处定义存储过程的通用功能?
- asp.net-core-mvc - 为什么编译器在 ASP.NET Core 3.1 MVC 中找不到我的控制器扩展?
- c# - WPF 动画不会为一位用户显示并且可能导致崩溃
- unit-testing - Vue:单元测试动态组件
- python - Django:带有动态 URL 的侧边栏:如何动态创建路径中包含动态文件夹的 URL
- python - 无效的语法 sum(list) >= 2