我想创建一个表,它采用2列的不同组合,只返回大于1的那些。
到目前为止,我创建了一个包含所有公司和与之相关的合同的表格。
open()
它还会创建第二个表,找到这些columan的不同组合,并创建一个列表,显示它们出现的次数。
Company Contract
------- --------
ABC 0000111
ABC 0000113
DEF 0000124
GHI 0000207
GHI 0000389
GHI 0000567
我正在尝试创建第三个表,该表只返回那些公司与多个合同匹配的行。
Company Countr
------- --------
GHI 3
ABC 2
修改后的来源,如果有帮助
Company Contract
------- --------
ABC 0000111
ABC 0000113
GHI 0000207
GHI 0000389
GHI 0000567
答案 0 :(得分:2)
这样的事情应该有效:
SELECT * FROM inventory WHERE company in
(SELECT company FROM inventory GROUP BY company HAVING count(distinct contract)>1);
子查询只会创建一个company
列表,其中包含多个contract
个inventory
。然后选择与company
匹配的所有数据DISTINCT
。 Count
子句中HAVING
中的using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
timer1.Interval = 2000;
timer1.Enabled = true;
timer1.Start();
}
private void timer1_Tick(object sender, EventArgs e)
{
timer1.Stop();
frm_newmessage frm_message = new frm_newmessage();
frm_message.ShowDialog();
timer1.Start();
}
}
}
修饰符可确保存在多个不同的合同
答案 1 :(得分:1)
我不确定是否有必要创建多个表。考虑到你提供的信息,我会按如下方式进行:
创建一个包含公司和合同信息的表格并将其命名为TABLE
Company Contract
------- --------
ABC 0000111
ABC 0000113
DEF 0000124
GHI 0000207
GHI 0000389
GHI 0000567
然后我会在该表上创建一个视图,如下所示,并将其命名为VIEW1
;这些列称为COMPANY
和CONTRACT_COUNT
,例如:
select company, count(contract) from TABLE group by company;
然后我会使用不同的查询创建另一个视图VIEW2:
select distinct TABLE.company, TABLE.contract from TABLE, VIEW1 where TABLE.COMPANY=VIEW1.COMPANY and CONTRACT_COUNT > 1