主题:求SQL语句写法。谢谢!
xlcself
[专家分:0] 发布于 2010-01-09 14:01:00
字段有产品代码(code),产品名称(name),产品型号(sign)【不同产品名称有可能有相同的型号】,数量(qu)。想达到各种产品各种型号的数量。如何写SQL语句呢?
谢谢!
最后更新于:2010-01-09 14:20:00
回复列表 (共17个回复)
沙发
GEORGECHIN [专家分:440] 发布于 2010-01-12 22:44:00
問題問得真的不知道核心在哪?
1.VF能夠操作的就是二維表,如果你的數據不符合二維表,那就無法操作!
2.即然你型號都相同,為何又名稱不同呢?就象我們劉德華叫華仔,有的叫ANDY一樣,但在二維表中,有意義嗎?真的莫名其妙!就算你想知道華仔有多少衣服,ANDY有多少衣服,那你總得要標上哪些是華仔的,哪些是ANDY的吧!這就是所謂數據表中的關鍵字---不得重復!
3.從你表達上面去猜測,其實這就是一個表,用LIST,DISPLAY都可以實現的東東,還要整什麼SQL?
板凳
kosung [专家分:910] 发布于 2010-01-19 00:09:00
嘿嘿,楼上的真不知道问题的核心?
1、二维表加个字段就能解决三维的问题,只是看你怎么处理罢了。
2、不同产品名称怎么就不可能有相同的型号?你没有见过的就不存在了?太主观了吧。
3、如果是处理三维的表,就不存在你的这一条了。问题是,就算用EXCEL表格,也能处理三维的表,甚至四维的,只是复杂些罢了。
3 楼
GEORGECHIN [专家分:440] 发布于 2010-01-19 04:03:00
[quote]嘿嘿,楼上的真不知道问题的核心?
1、二维表加个字段就能解决三维的问题,只是看你怎么处理罢了。
2、不同产品名称怎么就不可能有相同的型号?你没有见过的就不存在了?太主观了吧。
3、如果是处理三维的表,就不存在你的这一条了。问题是,就算用EXCEL表格,也能处理三维的表,甚至四维的,只是复杂些罢了。
[/quote]
1.不知是我的表述能力差還是你的理解能力差.我的意思是說,VFP能夠操作的就是二維表.所以我們設計數據庫表時,就一定要符合二維表的特性.一個有價值的二維表.他的某一行和某一列的交點值就是唯一的.在VFP中,行就是我們的關鍵字,列就是字段.你認為列為"衣服件數",兩行甚至以上行同時為"華仔"的這種表在生活中有價值嗎?
2.產品名稱不同,但型號相同這樣數據是存在的.但是這種數據就完全可以用以產品名稱,型號及庫存數量為字段的一個二維表來解決,還需要用SQL嗎?
3.不管是多大維數的表,我們都可以對其進行拆分,然后按我們想要的數據進行再次連接.但是要把多個表連接成一個表的關鍵是這些被拆分的表是有相關性的,這就是SQL中的 "ON" 部分.
4.所以我說問題的核心不知在哪,是因為我不知道他的各個表都有些什麼字段,而這些表之間相關聯的字段又是什麼.僅從他所描述的猜測,這不過就是一個二維表,根本就不需要SQL.至於你說的三維,我還真想不到有什麼理由把這種簡單的數據表要設成三維.
4 楼
kosung [专家分:910] 发布于 2010-01-19 08:29:00
1、任何的表都是二维性质的,如果硬要处理三维的东西,就是往其中加区分字段或另外建个关联的表(不划算的)。在二维表中处理三维的数据时,我认为你提的表在生活中是有价值的,看在什么场合。
2、和你的分歧,估计是在处理三维数据用一个还是用两个表,按你的表述你是要用两个表,但也可以只用一个表(效率更高)。但这和用不用SQL是两码事,不存在“需要用SQL嗎”这样的问题
3、你还是只会拆分成多表处理。
4、我们分歧的结果表现。
其实多维表完全可以用一个表处理,只是这样会在一个表里有很多的字段。用一个表和用多表处理三维以上数据各有好处。如财务的存款账处理就是这样的。
5 楼
GEORGECHIN [专家分:440] 发布于 2010-01-19 13:46:00
1.我是就事論事.也就是針對樓主所提的問題所說的那種表沒有存在的價值以及沒有必要SQL.
2.任何表都是二維的?有沒有看到過在表的左上方划上兩條以上斜線的表?
3.就單獨一個型號,名稱,庫存這種表,實在是沒有必要弄好幾個表去處理.但是如果這個型號會被其它很多表引用時,似乎拆分成兩個表很有作用!這就是為什麼國家要頒布國家標準的意義.也正是現代企業對產品為何要用多階正展的形式建立BOM的原因---劃整為零然后再取零為整.
4.記得論壇里有一個朋友說到,問問題一定要把問題闡述清楚,不要怕別人學了你的思路.其實我說的問題核心也是這樣一回事---樓主沒有把問題交代清楚.
6 楼
jinlonggao [专家分:17130] 发布于 2010-01-19 13:53:00
字段有产品代码(code),产品名称(name),产品型号(sign)【不同产品名称有可能有相同的型号】,数量(qu)。想达到各种产品各种型号的数量。如何写SQL语句呢?
select name,sign,sum(qu) as qu from 表 group by name,sign
请楼主先试试,看是否符合楼主的要求,符合就好,不符合,再讨论,一来二往,问题就搞清楚了。
7 楼
GEORGECHIN [专家分:440] 发布于 2010-01-19 14:21:00
[quote]字段有产品代码(code),产品名称(name),产品型号(sign)【不同产品名称有可能有相同的型号】,数量(qu)。想达到各种产品各种型号的数量。如何写SQL语句呢?
select name,sign,sum(qu) as qu from 表 group by name,sign
这么简单的问题,直接写出句子,让楼主先试试,看是否符合楼主的要求,符合就好,不符合,再讨论,一来二往,问题就搞清楚了,何必搞得那样复杂,什么二维三维的,好像就你们学问深。[/quote]
不得不佩服你:很牛X!
不過你要以德服人啊,在某個貼子里看到你說要尊重老人,可是你作為老人為何又為老不尊呢?
我們討論二維三維,相對於本貼可能是有一些扯遠了,可是還是在盡力為樓主找根本原因.對於我來說,回我的貼,寫得越多越仔細越好.如果他能一行一行的解釋,那是最好的了.比如:ILIKEFOX的回復,他就是非常地用心.這樣才會讓人尊重和佩服.但是你呢,說話那麼沖,真是一只好斗的公雞.
8 楼
jinlonggao [专家分:17130] 发布于 2010-01-19 14:30:00
[em20]
9 楼
GEORGECHIN [专家分:440] 发布于 2010-01-19 15:44:00
[quote]记住小子,先是你冒犯我的.做事要有理有节,我点你一指头,你就打我一拳头,你够狠,小子.网络上我拿你没法,现实中,你这样处事,要吃亏的![/quote]
第一:我從沒有冒犯你.
第二:有來無往非禮也.你即然知道是點了別人一指頭,你應該就要做好吃別人一拳頭的心理準備.
第三:不管是現實中還是網絡中,你都沒有辦法將我怎樣.因為你不是瘋子我也不是傻子,互相都沒有交集也沒有利益糾葛.我吃什麼虧?再說你會做損人不利己的事嗎?
第四:爭論在所難免.請好好利用中國的文字.不要讓別人看到有威脅的成份在.否則這不僅僅是人品好斗的問題.
10 楼
jinlonggao [专家分:17130] 发布于 2010-01-19 16:08:00
[em18]
我来回复