復雜的SQL查詢語句
一般出庫的商品,進庫里一定有,用進庫左連接出庫表就可以了。
select No,inCount,outCount from IN a left outer join OUT b on *=* 結果是 編號 入庫數量 出庫數量,因為用入庫表做左連接,可以看入庫的有多少沒出庫,有些入庫的出庫是空也有可能,如果你要看出庫的多少,倉庫里還有多少,只要反過來,用出庫表做左連接就好了.select No,inCount,outCount from Out a left outer join IN b on *=*。
復雜sql語句查詢
select id,name,isnull((select SUM(金額) from B表 where id=A表.id and bno=20),0) 正常消費,isnull((select SUM(金額) from B表 where id=A表.id and bno=30),0) 充值,(select top 1 余額 from B表 where id=A表.id order by 時間 desc) 余額,(select MAX(時間) from B表 where id=A表.id) 時間 from A表 這樣看一下行不行。
復雜sql語句查詢
select id,name,isnull((select SUM(金額) from B表 where id=A表.id and bno=20),0) 正常消費,isnull((select SUM(金額) from B表 where id=A表.id and bno=30),0) 充值,(select top 1 余額 from B表 where id=A表.id order by 時間 desc) 余額,(select MAX(時間) from B表 where id=A表.id) 時間
from A表
這樣看一下行不行
復雜的SQL查詢語句
一般出庫的商品,進庫里一定有,用進庫左連接出庫表就可以了。
select No,inCount,outCount from IN a left outer join OUT b on *=*
結果是 編號 入庫數量 出庫數量,因為用入庫表做左連接,可以看入庫的有多少沒出庫,有些入庫的出庫是空也有可能,
如果你要看出庫的多少,倉庫里還有多少,只要反過來,用出庫表做左連接就好了.
select No,inCount,outCount from Out a left outer join IN b on *=*
一個復雜的sql 語句
汗一個,我用一個sql實現了,在Sql2005下測試通過:
DECLARE @key NVARCHAR(MAX);
SET @key = '中';--要搜索的關鍵詞
SELECT CASE
WHEN t IS NULL THEN N'(' + @key + N')' + SUBSTRING(k, LEN(@key) + 1, LEN(k))
ELSE N'(' + t + N')' + SUBSTRING(k, LEN(t) + 1, LEN(k))
END
FROM (
SELECT k,
(
SELECT TOP 1 k
FROM 關鍵詞表 a1
WHERE a2.k LIKE a1.k + '%'
) t
FROM 內容表 a2
WHERE k LIKE @key + '%'
) a
如果用一條sql實現,很困難,建議用存儲過程實現
或用程序去實現
求一個復雜的sql查詢語句,涉及到模糊匹配的
為什么是0,3這樣呢? 0明顯沒有對應的classid啊
id classid productname
1 1,2 產品一
2 1,3 產品二
3 1,2,3 產品三
查詢分類3的方法:
select * from product where classid like '%3,%' or classid like '%,3%' or classid like '%,3,%'
當然上面的方式比較笨拙,但是樓主的數據表結構顯然還是不夠優化的。
一般來說,我們在設計類似樓主這個product表結構的時候,會限制其classid的最大個數。例如規定一個產品最多同時屬于3個分類,那么在存儲的時候我們可以:
id classid productname
1 1,2,0 產品一
2 1,3,0 產品二
3 1,2,3 產品三
如上結構,查詢分類3,我們就可以這樣查詢了:
select * from product where classid like '3,[^3],[^3]' or classid like ''[^3],3,[^3]' or classid like '[^3],[^3],3'