选择不同的记录

时间:2016-03-22 09:51:07

标签: sql firebird

data grig

我有一张如上所示的表格。如您所见,“v_ctra_no”列中的值会重复。我应该使用什么类型的SQL查询,以便我能够选择“v_ctra_no”值唯一的那些行。例如

col_name1      col_name2     col_name3
Ctra#001        Cash            200
Ctra#002        Sales           40
Ctra#003        Purchase        1000

我尝试使用下面提到的查询,但它不起作用

SELECT DISTINCT(v_ctra_no),v_ctra_date,v_ctra_id FROM TBL_ACC_CTRA_VCH_MSB

1 个答案:

答案 0 :(得分:2)

看起来您正在尝试总结销售额。似乎这更像是你在寻找的东西:

SELECT v_ctra_no, v_ctra_dr_ledgeacc_name, SUM(v_ctra_dr_ledgeacc_amt) AS v_total_sales
FROM TBL_ACC_CTRA_VCH_MSB
GROUP BY v_ctra_no, v_ctra_dr_ledgeacc_name

这将显示帐号和帐户名,以及帐户金额列中所有条目的总数(SUM)。只要所有帐号条目的帐户名称相同,您就不会有任何重复项。

但是,您可能需要考虑重组数据库(如果您有此选项),以便将帐户详细信息与单独的销售额分开。

如果您不想要销售信息,只想要帐户详细信息以及日期,那么您可以在名称上做一个与众不同的内容:

SELECT DISTINCT v_ctra_no, v_ctra_date
FROM TBL_ACC_CTRA_VCH_MSB

但是,每次日期不同时,您都会收到重复但帐号保持不变。如果你考虑一下,这是有道理的。

如果您只想要不同的帐号,请使用:

SELECT DISTINCT v_ctra_no
FROM TBL_ACC_CTRA_VCH_MSB